hdu 12310 girl friend #DP#组合数学
来源:互联网 发布:淘宝热区代码 编辑:程序博客网 时间:2024/06/06 05:24
http://acm.hnu.cn/online/?action=problem&type=show&id=12310&courseid=215
千万记得用64bit
//求一串不同颜色珠子(珠子的独特性只由颜色决定)的组合数#include <stdio.h>#include <string.h>#include <algorithm>#define N 10001#define NN 1001#define K 201#define MODE 1000000007__int64 c[N][K];void cal_c(){ int i,j; for(i = 0; i < K; ++ i) c[i][0] = 1; for(i = 1; i < K; ++i) { for(j = 1; j <= i; ++j) c[i][j] = (c[i-1][j] + c[i-1][j-1]) % MODE; }}int n,k;int bead[N],used[N],cnt[NN],s[NN],su[NN];__int64 sum,dp[NN][K];int main(){ cal_c(); while(scanf("%d%d",&n,&k) != EOF) { memset(cnt,0,sizeof(cnt)); memset(dp,0,sizeof(dp)); int i,j,mk,ii; for(i = 0; i < n; ++i) scanf("%d",&bead[i]); for(i = 0; i < n; ++i) { scanf("%d",&used[i]); if(used[i]) cnt[bead[i]]++; } int sp = 0; for(i = 0; i < 1001; ++i) if(cnt[i]) s[sp++] = cnt[i]; su[0] = s[0]; for(i = 1; i < sp; ++i) su[i] = su[i-1] + s[i]; if(su[sp-1] < k) { printf("0\n"); continue; } for(i = 0; i <= s[0]; ++i) dp[0][i] = 1; for(i = 1; i < sp; ++i) { for(j = 0;j <= su[i]&&j <= k; ++j) { sum = 0; mk = std::min(j,s[i]); for(ii = 0; ii <= mk; ++ii)///用ii个第i种 取代前i-1种j个情况 中的ii个 sum = (sum + dp[i-1][j-ii]*c[j][ii]%MODE) % MODE; dp[i][j] = sum; } } printf("%I64d\n",dp[sp-1][k]); } return 0;}
- hdu 12310 girl friend #DP#组合数学
- hdu 6143 组合数学+dp
- 【组合数学--拉姆齐定理】hdu 6152 Friend-Graph
- HDU 1719--Friend【数学】
- hdu 5396 Expression (dp+组合数学)
- HDU 4248 DP与组合数学
- CodeChef:Girl Friend and String Gift(dp)
- hdu 1719 Friend 数学推导
- Find a girl friend
- hdu 3625 Examining the Rooms //组合数学DP
- hdu 3944 DP? 组合数学与数论的结合
- hdu 4248 A Famous Stone Collector(组合数学&DP)
- hdu 4248 A Famous Stone Collector dp+组合数学
- hdu 4661 Message Passing(树形DP&组合数学)
- HDU 4359 Easy Tree DP? 组合数学+动归
- HDU 1799 循环多少次?(DP+组合数学)
- hdu 5151 Sit sit sit(区间DP+组合数学)
- HDU 5729 Rigid Frameworks(组合数学+dp)
- QT 线程导致奇怪错误的问题
- set -o vi
- VS2008中捕获内存泄露
- Android学习之LayoutInflater类的使用
- ATL技术内幕 第一部分
- hdu 12310 girl friend #DP#组合数学
- 微软自带 treeview 绑定数据
- 一致性哈希(Consistent Hashing)的实现
- [转]输入法全角自动转半角的技术处理
- 对memcache的数据(key-value)进行遍历操作
- Linux私房菜基础篇:第二部分,linux文件、目录与磁盘格式
- asp.net二级域名的解析
- 只要有你
- win2008安装 apache+php+mysql