uva10943

来源:互联网 发布:sugarnmstool 源码 编辑:程序博客网 时间:2024/05/19 03:27

昨天的题,会了组合数学的方法,那个dp的经过别人指点也会了
刚才看了国服第一系列,小漠终于又更新了,我现在感觉现在看视频应该是情怀了。看小智也是
思路转移方程式dp[i][j] = (dp[i][j] + dp[i - k][j - 1])%moli表示分的数,j表示分成几个,然后dp[i - k][j - 1],i-k分成j-1个数,最后一个数加个k

#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int dp[110][110];const int N = 1e6;void yu(){    for(int i = 0 ; i < 101 ; i++) dp[i][1] = 1;    for(int i = 0 ; i < 101 ; i++){        for(int j = 1 ; j < 101 ; j++){            for(int k = 0 ; k <= i ; k++){                dp[i][j] = (dp[i][j] + dp[i - k][j - 1])%N;            }        }    }}int main(){     int n , k ;     yu();     while(scanf("%d %d",& n ,&k) && n + k){        printf("%d\n",dp[n][k]);     }}
0 0