USACO 3.1 Score Inflation

背包问题

#include <iostream>
#include 
<fstream>

using namespace std;

ifstream 
in("inflate.in");
ofstream 
out("inflate.out");


int points[10000];
int minutes[10000];
int dp[10001];
int n;
int m;

void solve()
{
    
int res = 0;

    
in>>m>>n;

    
for(int i=0;i<n;++i)
        
in>>points[i],in>>minutes[i];

    memset(dp,
0,sizeof(dp));

    
for(int i=0;i<n;++i){
        
for(int j=minutes[i];j<=m;++j){
            dp[j] 
= max(dp[j-minutes[i]]+points[i],dp[j]);
        }
    }

    
out<<dp[m]<<endl;
}

int main(int argc,char *argv[])
{
    solve(); 
    
return 0;
}


posted on 2009-06-29 22:21 YZY 阅读(999) 评论(0)  编辑 收藏 引用 所属分类: AlgorithmUSACO动态规划


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


导航

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿(2)

随笔分类

随笔档案

搜索

积分与排名

最新评论

阅读排行榜