[杂题 组合] Codeforces #40E. Number Table
来源:互联网 发布:一键换机软件下载 编辑:程序博客网 时间:2024/06/07 03:09
题很关键的一点是注意到
然后就很简单了,只需考虑一维的限制。
瞎搞就好了。
#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=1005;int n,m,K,cnt[maxn],v[maxn],P,a[maxn],b[maxn],c[maxn];LL C[maxn][maxn],res,ans;int main(){ freopen("cf40E.in","r",stdin); freopen("cf40E.out","w",stdout); scanf("%d%d%d",&n,&m,&K); if((n^m)&1) return puts("0"), 0; for(int i=1;i<=K;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]), c[i]=(c[i]==1?0:1); scanf("%d",&P); for(int i=0;i<=1000;i++){ C[i][0]=1; for(int j=1;j<=i;j++) C[i][j]=(C[i-1][j-1]+C[i-1][j])%P; } if(n<m){ swap(n,m); for(int i=1;i<=K;i++) swap(a[i],b[i]); } for(int i=1;i<=n;i++) cnt[i]=m, v[i]=1; for(int i=1;i<=K;i++) cnt[a[i]]--, v[a[i]]^=c[i]; ans=1; for(int i=1,pd=0;i<=n;i++){ if(cnt[i]==m&&!pd){ pd=1; continue; } LL res=0; for(int j=v[i];j<=cnt[i];j+=2) (res+=C[cnt[i]][j])%=P; ans=(ans*res)%P; } printf("%lld\n",ans); return 0; }
阅读全文
0 0
- [杂题 组合] Codeforces #40E. Number Table
- CodeForces 40 E.Number Table(组合数学)
- Codeforces 40E Number Table (计数)
- codeforces E Square Table
- 【组合】Codeforces40E[Number Table]题解
- Codeforces 651E:Table Compression
- Codeforces 417E Square Table(随机算法)
- Codeforces 417E Square Table(随机算法)
- CodeForces 663E - Binary Table FWT
- Codeforces 651E Table Compression 拓扑序
- [FWT] Codeforces 663E. Binary Table
- Codeforces 135E Weak Subsequence(组合计数)
- Codeforces E. Qwerty78 Trip 【组合数学】
- codeforces 893E Counting Arrays (组合数学)
- CodeForces 51 E.Pentagon(组合数学)
- Codeforces 441 E. Valera and Number
- Codeforces 235E. Number Challenge DP
- Codeforces 617E XOR and Favorite Number
- 高效的两段式循环缓冲区──BipBuffer
- Hive优化总结
- 单片机存储理解
- OpenCV3及opencv_contrib安装
- C/C++学习笔记5-栈的工作流程
- [杂题 组合] Codeforces #40E. Number Table
- 对百度上传webupload插件的两种写法
- 查看Win10序列号
- 7.Python的基本数据类型(中二)
- SSM框架-SpringMVC 实例文件上传下载
- Zookeeper 集群伪分布 在 Windows下的安装
- 视觉设计中发现的11种光学错觉
- linux安装zookeeper与dubbo
- 微场景 swiper 监测当前页数进而做其他动作