zoukankan      html  css  js  c++  java
  • poj 2184 Cow Exhibition 负值01背包

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    const int inf=1<<24;
    
    int dp[200000+5],s[100+5],f[10+5];
    
    int main()
    {
        int n,i,j,ans;
        while(~scanf("%d",&n))
        {
            for(i=0;i<n;i++)
                scanf("%d%d",&s[i],&f[i]);
            for(i=0;i<=200000;i++)
                dp[i]=-inf;
            dp[100000]=0;
    
            for(i=0;i<n;i++)
            {
                if(s[i]<=0&&f[i]<=0) continue;
                if(s[i]>0)
                {
                    for(j=200000;j>=s[i];j--)
    
                        if(dp[j-s[i]]>-inf)
                            dp[j]=max(dp[j-s[i]]+f[i],dp[j]);
                }
                else
                {
                    for(j=s[i];j<=200000+s[i];j++)
                    {
                        if(dp[j-s[i]]>-inf)
                            dp[j]=max(dp[j-s[i]]+f[i],dp[j]);
                    }
                }
            }
    
            ans=-inf;
            for(i=100000;i<=200000;i++)
            {
                if(dp[i]>=0)//要求两个都要大于0
                    ans=max(ans,dp[i]+i-100000);
            }
    
            printf("%d
    ",ans);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    表详细操作
    库相关操作
    数据库一
    协程
    多线程2
    .Net鼠标随动窗口
    .Net操作音频
    .Net操作注册表--un
    .Net操作.exe文件
    .Net连接数据库(AOD.Net)
  • 原文地址:https://www.cnblogs.com/xryz/p/4847888.html
Copyright © 2011-2022 走看看