ADPC2-D 分配颜色

ADPC2-D 分配颜色

题意:

n*m的表格,一开始都是红色的,现在可以进行p次操作1和q次操作2
操作1: 把某一行的同学进行取反操作:即红色变为蓝色,蓝色变成红色。
操作2: 把某一列的同学进行取反操作:即红色变为蓝色,蓝色变成红色。
问多少种方案满足:执行完所有操作1和操作2之后,蓝色恰好有t个
若两个方案中的某一行或列被小A进行操作的次数不同时,则视为两种不同的方案。

题解:

题目给的是取反操作,意味着成对的相同操作是相互抵消的,因为题目问有多少种方案满足,我们可以这样去设方案:设最终实际效果下有i行被翻转,j列被翻转,什么叫最终实际效果?有些行被翻之后又给翻回去了,那就不算被翻,我们要的是最终的呈现效果。
现在有i行j列是翻转的,那么就有i∗m+j∗n−2∗i∗ji*m+j*n-2*i*jim+jn2ij(注意横纵直线交界处是红色而不是蓝色),如果i∗m+j∗n−2∗i∗j=ti*m+j*n-2*i*j=tim+jn2ij=t,且(p-i)和(q-j)都是偶数,说明这个情况是合法的,(p-i)和(q-j)是多余的操作,而多余的操作想要抵消就必须是偶数个才行。
我们就要考虑这个情况的合法方案:
很显然我们可以从n中任意选i个翻转,CniC_{n}^iCni
我们也可以从m中任意选j个翻转,CnjC_{n}^jCnj
然后对于多余的操作p-i,我一开始想的是因为p-i一定是偶数,可以抵消,那么我们分配(p-i)/2就行,另一半部分跟着之前操作就行,那每次操作都可以选n个,那答案不就是n(p−i)/2n^{(p-i)/2}n(pi)/2吗?但并不是,因为题目说了不同的方案是指:某一行或列被小A进行操作的次数不同,而与操作顺序无关,我们直接n的次幂求,会讲不同顺序的操作也看成不同操作,导致答案算多了。
那不gg了,并没有,现在我们有(p-i)/2个操作要执行,每个操作可以选任意一行,且与顺序无关,那问题转换一下,有(p-i)/2个球,现在有n个盒子,现在要把球放在盒子里,随机放,方案是多少?我们利用隔板法来做:现在有(p-i)/2+n个球,有n个盒子,每个盒子至少一个球,所有球排成一列,有(p-i)/2+n-1个间隙,在这些间隙中插入n-1个隔板,这样就可以分出n个空间,相当于n个盒子,也就是C(p−i)/2+n−1n−1C_{(p-i)/2+n-1}^{n-1}C(pi)/2+n1n1
列的也同理
详细看代码

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
#define int long long
const int mod=555555555;
int C[4500][4500];
inline void init()
{for(int i=0;i<4500;i++){for(int j=0;j<=i;j++){if(!j) C[i][j] = 1;else C[i][j] = (C[i-1][j] + C[i-1][j-1]) % mod;}}
}
signed main()
{init();int n,m,p,q,t;cin>>n>>m>>p>>q>>t;long long ans=0;for(int i=0;i<=min(n,p);i++)for(int j=0;j<=min(m,q);j++){if((p-i)&1) continue;if((q-j)&1) continue;if(j*n+i*m-2*i*j==t){	ans+=C[n][i]*C[m][j]%mod*C[n+(p-i)/2-1][n-1]%mod*C[m+(q-j)/2-1][m-1]%mod;ans%=mod;}}printf("%lld",ans);return 0;
}
/*
10 10 200 200 0
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[BZOJ3944] Sum

[BZOJ3944] Sum 题目描述&#xff1a; solution 裸的杜教筛。 唯一的坑点在于卡常。 似乎ans1和ans2都杜教筛超时了。 然而用杜教筛求出ans2&#xff0c;并用求出ans1不超时&#xff1f;&#xff01;&#xff1f;。 ​ ​ ​ #include<bits/stdc.h> using namespac…

SuperSocket 2.0 Preview1 发布,.NET Socket服务器框架

今天&#xff0c;SuperSocket的作者发布了2.0版本的第一个预览版。SuperSocket 2.0 是一个经过全新设计的&#xff0c;第一个完全基于.NET Core的版本。作者正在积极尝试提供更简单易用的API的同时&#xff0c;尽量保证与老版本相似的原汁原味的开发体验。新的版本中亦删除了一…

Codeforces Round #735 (Div. 2)

Codeforces Round #735 (Div. 2) 题海题目知识点ACherryBCobbCMikasaDDianeEYou

[LG P2519][BZOJ2298][HAOI2011]problem a

[LG P2519][BZOJ2298][HAOI2011]problem a 题目描述 一次考试共有n个人参加 第i个人说&#xff1a;"有ai个人分数比我高&#xff0c;bi个人分数比我低。" 问最少有几个人没有说真话(可能有相同的分数) 输入输出格式 输入格式&#xff1a; 第一行一个整数n&…

跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇

fireasy 面世都有六个年头了&#xff0c;至今依旧是默默无闻&#xff0c;知道它的人可能仅限于本人朋友圈内的人士。本人也在写一本关于如何使用该框架的书籍&#xff0c;但苦于事务繁忙&#xff0c;至今也才写了一半&#xff0c;可以说最为实用最为核心的部分&#xff0c;仍然…

hdu4609 3-idiots

hdu4609 3-idiots 题意&#xff1a; 给出n个木棍以及它们的长度&#xff0c;求取其中三根长度各不相同的木棍组成三角形的概率 题解&#xff1a; 三角形满足条件&#xff1a; 任意两边之和大于第三边 我们设多项式A(x&#xff09;&#xff0c;其中Cixi(Ci是系数)C_ix^i(C_i…

某谷 P1654 OSU!

某谷 P1654 OSU! 题目背景 原 《产品排序》 参见P2577 题目描述 osu 是一款群众喜闻乐见的休闲软件。 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作&#xff0c;每次操作只有成功与失败之分&#xff0c;成功对应1&#xff0c;失败对应0&#xff0c;n次操作…

dotnet pack 打包文件版本号引起 Could not load file or assembly 问题

如果不是遇到&#xff0c;真的不会想到&#xff0c;代码世界的问题真是千奇百怪&#xff0c;这次遇到的是 dotnet pack 打包文件版本号引起的问题。之前进行 nuget 打包都是在 Visual Studio build 时进行&#xff0c;版本号时通过 .csproj 中的 VersionPrefix 指定&#xff0c…

FFT/NTT/FMT/FWT题目

快速傅里叶变换FFT hdu4609 3-idiots P4173 残缺的字符串 Hash Function [AH2017/HNOI2017]礼物 CF993E Nikita and Order Statistics 快速沃尔什变换 FWT BZOJ4589. Hard Nim Tree Cutting HDU - 5909 快速莫比乌斯变换 FMT 快速数论变换 NTT P2000 拯救世界

[Wannafly挑战赛2D-Delete]最短路

[Wannafly挑战赛2D-Delete]最短路 题目描述 给定一张 n 个点&#xff0c;m 条边的带权有向无环图&#xff0c;同时给定起点 S 和终点 T &#xff0c;一共有 q 个询问&#xff0c;每次询问删掉某个点和所有与它相连的边之后 S 到 T 的最短路&#xff0c;询问之间互相独立(即删…

ASP.NET Core MVC 视图

ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处&#xff0c;学习难度较低。以下内容主要体现了编程中模块化的思想&#xff0c;模块化才应是我们关注的重点。布局用于提供各个页面所需的公共部分&#xff0c;如&#xff1a;菜单、页头、页尾等。在ASP.NET Core中默认…

CF993E Nikita and Order Statistics

CF993E Nikita and Order Statistics 题意&#xff1a; 给你一个数组 a1∼na_{1 \sim n}a1∼n​&#xff0c;对于 k0∼nk 0 \sim nk0∼n&#xff0c;求出有多少个数组上的区间满足&#xff1a;区间内恰好有 k 个数比 x 小。 x 为一个给定的数。 n≤2105n \le 2 \times 10^5n…

ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署

之前开发前端的时候&#xff0c;webpack 会有热更新工具&#xff0c;在修改了代码之后&#xff0c;自动将代码编译&#xff0c;实时展现到页面上&#xff0c;给开发带来了极大的方便。Java也可以通过第三方插件JRebel实现热部署&#xff0c;不用频繁的重启Tomcat。微软官方也为…

P3825 [NOI2017]游戏

P3825 [NOI2017]游戏 题目描述 小 L 计划进行n场游戏&#xff0c;每场游戏使用一张地图&#xff0c;小 L 会选择一辆车在该地图上完成游戏。 小 L 的赛车有三辆&#xff0c;分别用大写字母A、B、C表示。地图一共有四种&#xff0c;分别用小写字母x、a、b、c表示。其中&#x…

事关SuperSocket发布,寻找YangFan哥哥

SuperSocket近日发布了2.0的第一个预览版《SuperSocket 2.0 Preview1 发布&#xff0c;.NET Socket服务器框架》&#xff0c;在NuGet上以一个包含数个SuperSocket程序集的大包的形式发布。https://www.nuget.org/packages/SuperSocket/2.0.0-preview1我原意以独立小包的形式发布…

P3321 [SDOI2015]序列统计(未解决)

P3321 [SDOI2015]序列统计 题意&#xff1a; 题解&#xff1a; 参考题解&#xff1a; 题解 P3321 【[SDOI2015]序列统计】 【LG3321】[SDOI2015]序列统计 神仙题。。学透再补 代码&#xff1a;

P1963 [NOI2009]变换序列

题目描述 不想水字&#xff0c;详见某谷&#xff1a;P1963 [NOI2009]变换序列 solution 其实 的计算就类似于环上的距离。 对于每一个 都可能有两种位置选择&#xff1a;&#xff0c; 。 所以把它们分别连边&#xff0c;二分图上匈牙利算法求完美匹配即可。 #include&…

一次 .NET Core 中玩锁的经历:ManualResetEventSlim, SemaphoreSlim

最近同事对 .net core memcached 缓存客户端 EnyimMemcachedCore 进行了高并发下的压力测试&#xff0c;发现在 linux 上高并发下使用 async 异步方法读取缓存数据会出现大量失败的情况&#xff0c;比如在一次测试中&#xff0c;100万次读取缓存&#xff0c;只有12次成功&…

BZOJ4589. Hard Nim

BZOJ4589. Hard Nim 题意&#xff1a; Claris和NanoApe在玩石子游戏&#xff0c;他们有n堆石子&#xff0c;规则如下&#xff1a; Claris和NanoApe两个人轮流拿石子&#xff0c;Claris先拿。每次只能从一堆中取若干个&#xff0c;可将一堆全取走&#xff0c;但不可不取&…

P2825 [HEOI2016/TJOI2016]游戏

题目描述 详见 P2825 [HEOI2016/TJOI2016]游戏。 solution 套路题。 一般思路是行列建点跑二分图最大匹配。 此题中的#会分隔行列&#xff0c;因此我们把每行的极大联通块设为点&#xff0c;列同理建点。 再对于每个*对应的行的极大联通块与列的最大联通块编号连边&…