zoukankan      html  css  js  c++  java
  • HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)

    http://acm.hdu.edu.cn/showproblem.php?pid=4508


    题目大意:

    给定一些数据。

    每组数据以一个整数n開始,表示每天的食物清单有n种食物。

     
    接下来n行,每行两个整数a和b。当中a表示这样的食物能够带给湫湫的幸福值(数值越大,越幸福),b表示湫湫吃这样的食物会吸收的卡路里量。
    最后是一个整数m,表示湫湫一天吸收的卡路里不能超过m。


    思路:

    全然背包。

    一開始以为是01背包。

    敲了01后例子2不正确啊。。。

    然后改成全然就过了。。就改循环体就好了。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int MAXN=100000+10;
    int w[MAXN],v[MAXN];
    int dp[MAXN];
    int main()
    {
    	int n,m;
    	while(~scanf("%d",&n))
    	{
    		for(int i=1;i<=n;i++)
    			scanf("%d%d",&v[i],&w[i]);
    		scanf("%d",&m);
    		
    		memset(dp,0,sizeof(dp));
    		
    		for(int i=1;i<=n;i++)
    		{
    			for(int j=w[i];j<=m;j++)
    			{
    				dp[j]=max(dp[j],dp[j- w[i]] + v[i]);
    			}
    		}
    		
    		printf("%d
    ",dp[m]);
    	}
    	return 0;
    }



    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    重拾数学--初中--有理数
    Python中的运算符
    PyQt5实现虚拟摇杆
    Python无重复字符的最长子串
    Python两数相加
    Python两数之和
    DBMS,B树和B+树
    浮点数表示
    Lamada表达式
    Java编程思想P159页的错误
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4618260.html
Copyright © 2011-2022 走看看