POJ 2184( Cow Exhibition ) 01背包 负值处理
来源:互联网 发布:济南淘宝模特公司 编辑:程序博客网 时间:2024/05/16 23:41
题意:给定n头牛的聪明指数S和幸福指数F,如果存在S的和TS>=0与F的和TF>=0同时成立时,输出TS与TF的和的最大值sum,否则,输出0。
这道题目的关键点在于S,F会有负值出现若按照以前方法处理必然会有越界。起初想对所有的数据加上1000,但是这样到最后并不知道加了几个1000.,。。。。
采用的方法是将“0“点设置为10000(超过最大负值的绝对值),然后在dp过程中修改上下界。
将背包容量变为可负,改变”0“点
#include<iostream>#include<cstdio>using namespace std;#define INF -999999999#define N 200005#define pos 100000#define max(a,b) (a)>(b)?(a):(b)int dp[N];int minn,maxn;int main(){ int n,i,j,s,t,ans; while(scanf("%d",&n)!=EOF) { for(i=0;i<N;i++) dp[i]=INF; dp[pos]=0; minn=maxn=pos; for(i=0;i<n;i++) { scanf("%d%d",&s,&t); if(s>0) { for(j=maxn;j>=minn;j--)dp[j+s]=max(dp[j+s],dp[j]+t);maxn=maxn+s; } else { for(j=minn;j<=maxn;j++) dp[j+s]=max(dp[j+s],dp[j]+t); minn=minn+s; } } ans=0; for(i=pos;i<=maxn;i++) if(dp[i]>=0) ans=max(ans,i-pos+dp[i]); printf("%d\n",ans); } return 0;}
0 0
- POJ 2184( Cow Exhibition ) 01背包 负值处理
- POJ 2184 Cow Exhibition (处理负值的01背包)
- poj 2184 Cow Exhibition 负值01背包
- poj 2184 Cow Exhibition(处理负数的01背包)
- poj 2184 Cow Exhibition(01背包)
- POJ 2184 Cow Exhibition ( 01背包变形 )
- POJ 2184 Cow Exhibition 01背包
- poj 2184 Cow Exhibition(01背包变形)
- POJ 2184 Cow Exhibition(DP:01背包)
- POJ 2184 Cow Exhibition(01背包变形)
- poj 2184 Cow Exhibition 01背包变形
- poj 2184 Cow Exhibition 【另类01背包】
- POJ--2184--Cow Exhibition--01背包
- POJ-2184-01背包变形-Cow Exhibition
- POJ 2184 Cow Exhibition 01背包
- POJ 2184 Cow Exhibition (变种01背包)
- POJ 2184Cow Exhibition(01背包变形)
- POJ - 2184 Cow Exhibition(01背包)
- POJ 3614 Sunscreen(贪心)
- Sublime Text3常用快捷键
- 网络编程学习笔记(非阻塞connect)
- jQuery Ribbles - 基于WebGL的水面涟漪动效插件
- sequence文件是hadoop的小文件解决方案
- POJ 2184( Cow Exhibition ) 01背包 负值处理
- TFTP 出现 Malformed Packet errror
- linux w命令参数及用法详解(linux查看在线用户命令)
- 多数投票算法(Majority Vote Algorithm)
- 今天在这里为你嗨大了你试试手机号剪短发
- Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解
- 亲爱的客户您好http://shop114197239.taobao.com
- php申请资料界面以及审核
- View的add过程,布局参数分析