[uva11806]容斥定理
2024-08-25 07:23:48
n*m的矩形 k个人 第一行,最后一行,第一列,最后一列都至少站有一个人
小水题
正着做不好做,要反着想,那就容斥定理,ABCD四种情况分别是那四个行列分别没有人。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std; const int mod=;
const int K=; int c[][]; int main()
{
//freopen("a.in","r",stdin);
memset(c,,sizeof(c));
c[][]=;
for(int i=;i<=K;i++)
{
c[i][]=c[i][i]=;
for(int j=;j<i;j++)
c[i][j]=(c[i-][j]+c[i-][j-])%mod;
}
int T;
scanf("%d",&T);
for(int TT=;TT<=T;TT++)
{
int n,m,k,ans=;
scanf("%d%d%d",&n,&m,&k);
for(int s=;s<(<<);s++)
{
int nn=n,mm=m,sum=;
if(s&(<<)) nn--,sum++;
if(s&(<<)) mm--,sum++;
if(s&(<<)) nn--,sum++;
if(s&(<<)) mm--,sum++;
if(sum&) ans=(ans-c[nn*mm][k]+mod)%mod;
else ans=(ans+c[nn*mm][k])%mod;
}
printf("Case %d: %d\n",TT,ans);
}
return ;
}
最新文章
- Java集合类--温习笔记
- 转自文翼的博客:将本地时间转换为 GMT 时间
- 复制Informational constraints on LUW DB2 v105
- Java高效编程之二【对所有对象都通用的方法】
- 黄聪:chrome扩展开发《AJAX请求》
- arm-linux-ld
- C#调用其它语言(例如C++)DLL文件中函数的方法摘要
- c结构体初始化问题
- sock_ntop等函数
- mysql及powerdesigner的初次使用
- Git基础教程
- Chromium被用于Microsoft Edge与ChakraCore的未来【译】
- navigator的一些冷知识
- 计算CPU的MIPS
- stark组件开发之组合搜索高级显示和扩展
- Java 8 新特性:2-消费者(Consumer)接口
- Java RedisClient
- 利用Go2Shell 实现 Mac Finder 直接shell端打开当前文件夹
- bzoj4571/luogu3293 美味 (主席树+贪心)
- sql 更新多条记录
热门文章
- Beta版本软件使用说明
- JavaScript初探系列之数组的基本操作
- iOS开发JOSNModel<;optional>;,<;convertondemand>;,<;index>;
- 《学习OpenCV》课后习题解答3
- C# HttpWebRequest post提交数据,提交对象
- 201621044079 韩烨 week11-作业11-多线程
- JAVA IDE IntelliJ IDEA使用简介(三)—之你不能忘记的快捷键
- veeValidate
- Ajax在jQuery中的应用(加载异步数据、请求服务器数据)
- MATLAB strcmp