国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

POJ3046-Ant Counting-多重集組合數(shù)

2019-11-08 03:27:05
字體:
供稿:網(wǎng)友

原題鏈接 Ant Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5361 Accepted: 2024 Description

Bessie was poking around the ant hill one day watching the ants march to and fro while gathering food. She realized that many of the ants were siblings, indistinguishable from one another. She also realized the sometimes only one ant would go for food, sometimes a few, and sometimes all of them. This made for a large number of different sets of ants!

Being a bit mathematical, Bessie started wondering. Bessie noted that the hive has T (1 <= T <= 1,000) families of ants which she labeled 1..T (A ants altogether). Each family had some number Ni (1 <= Ni <= 100) of ants.

How many groups of sizes S, S+1, …, B (1 <= S <= B <= A) can be formed?

While observing one group, the set of three ant families was seen as {1, 1, 2, 2, 3}, though rarely in that order. The possible sets of marching ants were:

3 sets with 1 ant: {1} {2} {3} 5 sets with 2 ants: {1,1} {1,2} {1,3} {2,2} {2,3} 5 sets with 3 ants: {1,1,2} {1,1,3} {1,2,2} {1,2,3} {2,2,3} 3 sets with 4 ants: {1,2,2,3} {1,1,2,2} {1,1,2,3} 1 set with 5 ants: {1,1,2,2,3}

Your job is to count the number of possible sets of ants given the data above. Input

Line 1: 4 space-separated integers: T, A, S, and B

Lines 2..A+1: Each line contains a single integer that is an ant type PResent in the hive Output

Line 1: The number of sets of size S..B (inclusive) that can be created. A set like {1,2} is the same as the set {2,1} and should not be double-counted. Print only the LAST SIX DIGITS of this number, with no leading zeroes or spaces. Sample Input

3 5 2 3 1 2 2 1 3 Sample Output

10 Hint

INPUT DETAILS:

Three types of ants (1..3); 5 ants altogether. How many sets of size 2 or size 3 can be made?

OUTPUT DETAILS:

5 sets of ants with two members; 5 more sets of ants with three members Source

USACO 2005 November Silver

#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int maxn = 1010;const int mod = 1000000;int T,A,S,B,x,c[maxn];int dp[2][100010];int main(){ cin >> T >> A >> S >> B; memset(dp,0,sizeof(dp)); while(A--){ scanf("%d",&x); c[x]++;//這里的c[i]是數(shù)量 } dp[0][0]=dp[1][0]=1; for(int i=1;i<=T;i++){ for(int j=1;j<=B;j++){ if(j-1-c[i]>=0) dp[i&1][j] = (dp[i&1][j-1] - dp[(i-1)&1][j-1-c[i]] + dp[(i-1)&1][j] + mod)%mod; else dp[i&1][j] = (dp[i&1][j-1] + dp[(i-1)&1][j])%mod; } } int res = 0; for(int i=S;i<=B;i++) res = (dp[T&1][i] + res)%mod; cout << res << endl; return 0;}// #include <cstdio>// #include <cstring>// #include <iostream>// using namespace std;// const int maxn = 1010;// int T,A,S,B,x,c[maxn];// int dp[100010];// int main(){// cin >> T >> A >> S >> B;// while(A--){// scanf("%d",&x);// c[x]++;// }// dp[0]=1;// for(int i=1;i<=T;i++){// for(int j=B;j>0;j--){// for(int k=1;k<=c[i];k++){//明顯這個(gè)效率太低,我們通過畫圖找關(guān)系能看出同一個(gè)i下可以進(jìn)行轉(zhuǎn)移// if(j-k<0) break;// dp[j] += dp[j-k];// }// }// for(int j=0;j<=B;j++) cout << dp[j] << " ";// cout << endl;// }// }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 克什克腾旗| 乌鲁木齐县| 万源市| 张掖市| 丹棱县| 湟源县| 扶余县| 邵阳县| 开化县| 波密县| 永善县| 浮梁县| 沙河市| 苏尼特左旗| 凤城市| 青浦区| 乳山市| 云龙县| 遂川县| 青冈县| 锡林郭勒盟| 永春县| 肇庆市| 宣城市| 措勤县| 清原| 张家港市| 柏乡县| 九台市| 乌兰浩特市| 泰安市| 阿合奇县| 双城市| 兴化市| 左权县| 盈江县| 定州市| 连平县| 正定县| 七台河市| 信宜市|