BZOJ4487 [Jsoi2015]染色问题


题目描述

传送门

题目分析

发现三个限制,大力容斥推出式子是\(\sum_{i=0}^{N}\sum_{j=0}^{M}\sum_{k=0}^{C}(-1)^{N+M+C-i-j-k}*(k+1)^{i*j}*\binom{N}{i}*\binom{M}{j}*\binom{C}{k}\)

由于数据范围较小,支持\(O(nmC)\)的做法。直接暴力预处理幂和组合数,暴力计算即可。

是代码呢

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mo=1e9+7;
ll C[405][405],n,m,c,ans;
int p[405][160002];
int main()
{
cin>>n>>m>>c;
C[0][0]=1;
for(int i=1;i<=max(n,max(m,c));i++){
C[i][0]=1;
for(int j=1;j<=i;j++){
C[i][j]=(C[i-1][j]+C[i-1][j-1])%mo;
}
}
for(int i=1;i<=c+1;i++){
p[i][0]=1;
for(int j=1;j<=n*m;j++){
ll t=1ll*i*p[i][j-1]%mo;
p[i][j]=t;
}
} for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
for(int k=0;k<=c;k++){
(ans+=1ll*C[n][i]*C[m][j]%mo*C[c][k]%mo*p[k+1][i*j]%mo*((n+m+c-i-j-k)%2==0?1:-1))%=mo;
}
ans=(ans+mo)%mo;
cout<<ans;
}

最新文章

  1. js类型转换的坑
  2. Git教程学习(五)
  3. PHP验证邮箱地址代码
  4. Javascript基础--成员函数(六)
  5. sap 根据TOCE找 USER_EXIT
  6. 源码安装Ansible
  7. net异步编程之await
  8. Cookie深度解析
  9. 20145203盖泽双《网络对抗技术》实践五:MSF基础应用
  10. 盘点 php 里面那些冷门又实用的小技巧
  11. @PathVariable和@RequestParam
  12. Individual Project Records
  13. Java并发编程的艺术(十三)——锁优化
  14. u3d中的INput
  15. 【Android SDK Manager】SDk国内镜像下载地址
  16. Java label
  17. python apache下出现The _imaging C module is not installed
  18. 关于java线程锁synchronized修饰普通方法与静态方法的区别
  19. atcoder之A Great Alchemist
  20. pairs 和 ipairs 的区别

热门文章

  1. Python 基础之列表去重的几种玩法
  2. src与href的异同
  3. js写css()方法,记得加引号“ ”,除非是数字
  4. (转)Linux-epoll
  5. unset($_COOKIE[&#39;wcookie_date&#39;])
  6. reg_action
  7. 简述 Python3 文件处理
  8. 流畅的python 闭包
  9. SSD(Single Shot MultiBox Detector)二读paper
  10. Keras之序贯(Sequential)模型