国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 威海市| 涞水县| 丰都县| 宣化县| 黑山县| 改则县| 锡林浩特市| 杭锦旗| 山丹县| 鸡东县| 信宜市| 扎囊县| 蒙山县| 徐水县| 广水市| 南昌市| 钟祥市| 阜南县| 平利县| 离岛区| 庆阳市| 汝城县| 尉氏县| 遂溪县| 宝清县| 黄平县| 顺平县| 衡阳县| 额敏县| 漠河县| 大足县| 涟源市| 铁力市| 长白| 苍溪县| 马边| 固原市| 丹凤县| 新沂市| 依安县| 加查县|