bzoj2278

来源:互联网 发布:金蝶软件多少钱一套 编辑:程序博客网 时间:2024/06/15 14:29

Count(i,j) = f[j] - Count(i,j - a[i])

#include<bits/stdc++.h>using namespace std;#define FOR(i,s,t) for(int i=(s);i<=(t);i++)inline int read(void){    int x = 0, c, f = 1;    do{c=getchar();if(c=='-')f=-1;}while(c<'0'||c>'9');    do{x=x*10+c-'0';c=getchar();}while(c>='0'&&c<='9');    return x * f;}typedef long long LL;const int N = 2100;int f[N];int a[N], c[N][N], n, m;int main(){    n = read(), m = read();    for (int i = 1; i <= n; i++) a[i] = read();    f[0] = 1;    for (int i = 1; i <= n; i++)         for (int j = m; j >= a[i]; j--)            f[j] = (f[j] + f[j - a[i]]) % 10;    for (int i = 1; i <= n; i++) {        c[i][0] = 1;        for (int j = 1; j <= m; j++) {            c[i][j] = j < a[i] ? f[j] : f[j] - c[i][j - a[i]];            c[i][j] = (c[i][j] + 10) % 10;            printf("%d",c[i][j]);        } putchar('\n');    }}
0 0
原创粉丝点击