题目链接:https://uva.onlinejudge.org/external/118/11806.pdf

题意:

n行m列的矩阵上放k个棋子,其中要求第一行,最后一行,第一列,最后一列必须要有。有多少种放法;

分析:

要是没有那个条件,就直接是C(n*m,k)了,其实也可以转换过来。

设满足“第一行没有棋子”的方案数为A,“最后一行没有棋子”的方案数B,C,D;

然后用容斥原理可以求出。

这里用二进制表示这16种组合;满足偶数个条件为+;

 #include <bits/stdc++.h>

 using namespace std;

 const int MOD = ;
const int maxn = ;
int C[maxn+][maxn+]; int main()
{
memset(C,,sizeof(C));
C[][] = ; for(int i=;i<=maxn;i++) {
C[i][] = C[i][i] = ;
for(int j=;j<i;j++)
C[i][j] = (C[i-][j]+C[i-][j-])%MOD;
} int t;
cin>>t;
int kase = ;
while(t--) {
int n,m,k,sum = ;
cin>>n>>m>>k;
for(int S=;S<;S++) {
int b = ;
int r = n;
int c = m;
if(S&) {r--;b++;}
if(S&) {r--;b++;}
if(S&) {c--;b++;}
if(S&) {c--;b++;}
if(b&) sum = (sum + MOD - C[r*c][k]) % MOD;
else sum = (sum + C[r*c][k])%MOD;
}
printf("Case %d: %d\n",kase++,sum);
} return ;
}

最新文章

  1. Exception mybatis 配置文件:&lt;typeAlias alias=&quot;***&quot; type=&quot;***&quot;/&gt; 重复配置
  2. 抽象工厂模式(Abstract Factory)
  3. CentOS下Tmux安装和使用
  4. iOS8中用UIVisualEffectView实现高斯模糊视图(毛玻璃效果)
  5. python读入文件
  6. sftp
  7. MySQL通配符过滤
  8. 和阿文一起学H5-- H5排版八大套路
  9. [置顶] Guava学习之Multimap
  10. AttributeError: &#39;TestLogin&#39; object has no attribute &#39;driver&#39; in Pycharm for python selenium
  11. [Ext.Net]TreePanel 异步加载数据
  12. MicrosoftRootCertificateAuthority2011.cer 下载
  13. docker 学习(九) docker部署静态网站
  14. docker compose示例
  15. 一次dropzone体验
  16. spring boot使用配置文件内容
  17. POJ1274 The Perfect Stall[二分图最大匹配 Hungary]【学习笔记】
  18. 51Nod 1081:子段求和(前缀和)
  19. 洛谷 Transformations 方块转换
  20. 常用的easyui使用方法之二

热门文章

  1. about rand and reflect
  2. KS光盘制作 for rhel6.5 and rhel7.2
  3. VSCode个人实用插件
  4. Mybatis学习笔记3 - 增删改查示例
  5. PHP文件上传error的错误类型 - $_FILES[&#39;file&#39;][&#39;error&#39;]
  6. c# 截取picturebox部分图像
  7. hdu 4123 树形DP+单调队列
  8. Python列表类型及常用操作
  9. 洛谷P3372 【模板】线段树 1(树状数组)
  10. 洛谷P3128 [USACO15DEC]最大流Max Flow(树上差分)