随笔-141  评论-9  文章-3  trackbacks-0
完全背包问题.

只是将完全背包问题的max 改为 sum

/*
ID: lorelei3
TASK: money
LANG: C++
*/


#include 
<fstream>

using namespace std;

const int V = 30;
const int MAX = 10005;

long long  f[MAX];
int c[V];
int N;

int main(){
    
int i,j,n;
    ifstream fin;
    ofstream fout;

    fin.open(
"money.in");
    fout.open(
"money.out");

    fin
>>n>>N;
    
for(i=1; i<=n; ++i)
        fin
>>c[i];

    f[
0]=1;
    
for(i=1; i<=n; ++i)
        
for(j=c[i]; j<=N; ++j)
            f[j] 
= f[j] + f[j-c[i]];

    fout
<<f[N]<<endl;
    
return 0;
}
posted on 2010-12-06 13:14 小阮 阅读(111) 评论(0)  编辑 收藏 引用 所属分类: USACO

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理