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*ji∗m+j∗n−2∗i∗j(注意横纵直线交界处是红色而不是蓝色),如果i∗m+j∗n−2∗i∗j=ti*m+j*n-2*i*j=ti∗m+j∗n−2∗i∗j=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(p−i)/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(p−i)/2+n−1n−1​
列的也同理
详细看代码

代码:

#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
*/

ADPC2-D 分配颜色相关推荐

  1. VTK:使用 vtkPolyData 结构为单元格分配颜色查找表用法实战

    VTK:使用 vtkPolyData 结构为单元格分配颜色查找表用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include ...

  2. php透明颜色的代码,PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度

    PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度 imagecolorallocatealpha - 为一幅图像分配颜色和透明度. 语法 int imagecol ...

  3. 【python】plt.cm.Spectral,颜色分配

    plt.cm.Spectral的简单示例: 实验:分别给6个元素分配颜色,其中第1,2,5,6个元素的颜色一致,第2,3个元素的颜色一致. plt.cm.Spectral([1,1,0,0,1,1]) ...

  4. php imagecolorallocate 安装,PHP imagecolorallocate()和imagecolorallocatealpha():定义颜色

    在 PHP 中,给图像的边框背景和文字等元素指定颜色可用 imagecolorallocate(),语法如下: int imagecolorallocate ( resource $image , i ...

  5. iPhone UITextField-更改占位符文本颜色

    我想更改在UITextField控件中设置的占位符文本的颜色,以使其变为黑色. 我宁愿在不使用普通文本作为占位符的情况下执行此操作,也不必重写所有方法来模仿占位符的行为. 我相信如果我重写此方法: - ...

  6. python颜色形状识别_Python自定义颜色形状Fi

    我在加拿大7个省之间打开了一个csv文件.我将把这个数字作为一个新列添加到shapefile中.我想知道如何根据我下面的十六进制代码的颜色列表来分配颜色.在 下面的代码可以工作,但是输出的颜色是程序默 ...

  7. echarts折线图背景线_echarts设置折线线条颜色和折线点颜色的实例

    本文主要介绍了jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法,结合实例形式分析了jQuery图表插件echarts设置折线图的相关操作技巧,需要的朋友可以参考下,希望能帮助到 ...

  8. OpenGL 视图和颜色的概念

    视图 计算机图形的要点就是创建三维物体的二维图像(图像必须是二维的,因为它是在平面的屏幕上显示的).但是,当我们决定怎样在屏幕上绘图时,必须用三维坐标的方式来考虑.人们在创建三维图像时经常犯的一个错误 ...

  9. java编写设置按钮随机背景色_java – 如何设置自定义按钮状态背景颜色?

    我有一个包含drawable和text的按钮.我希望按钮的背景与提供的正常背景不同(最好是纯色).这很好用,我只是在 XML文件中使用android:background属性并相应地分配颜色.但是,我 ...

最新文章

  1. python使用fpdf生成结账发票pdf文件
  2. 在sae上编译代码是所遇到的问题
  3. 启动Kafka失败Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 107
  4. TextArea换行 滚动条
  5. 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
  6. C语言 strcspn函数实现
  7. 汇编跳转指令B、BL、BX、BLX 和 BXJ的区别
  8. Hyperledger fabric v2.3 交易流程 翻译
  9. Java制作证书的工具keytool用法总结
  10. 阿里云招聘----技术生态和技术战略专家
  11. 【Uniapp 原生插件】芯烨云打印机插件
  12. 360视频:分段球面投影SSP
  13. C#中的InputBox
  14. UVA 12304 /// 圆的综合题 圆的模板
  15. Java抽号系统_简单实现java抽奖系统
  16. STM32驱动3.97寸TFT液晶触摸屏模块
  17. 【论文阅读】24-USAC: A Universal Framework for Random Sample Consensus
  18. 《从程序员到项目经理》读后感-合群
  19. c++11 regex 正则表达式验证车牌号
  20. UI设计是青春饭?今天告诉你真相!

热门文章

  1. linux+awk忽略tab符号,awk 如何避免文本中出现特殊符号的影响?
  2. git checkout 单个文件_git 如何回退单个文件
  3. 【解决bug之路】JAVA 之 static
  4. java 8 排序_一遍记住 8 种排序算法与 Java 代码实现
  5. 用python可以处理xml文件怎么打开_Python大神都是这样处理xml文件的!
  6. mysql5.7组复制多主一从搭建_MySql5.7-多源复制(多主单从)
  7. windows传真和扫描由于不能访问您的文档_扫描识别工具Dynamic Web TWAIN全年最低价来了!错过再等一年...
  8. ansys fluent udf manual 下载_FLUENT流固耦合柱体结构涡激振动仿真案例解析
  9. 图书管理系统jsp代码_【程序源代码】使用Java开发的图书管理系统
  10. leetcode343. 整数拆分(思路+详解)