POJ 2184 Cow Exhibition
来源:互联网 发布:unity3d opencv 编辑:程序博客网 时间:2024/05/16 08:52
无奈 无法独立解决
代码
//转化为01背包问题 就需要求状态转移方程,ff [ ] 下表设为 s[i]的值 其值设为f[i]的值,就是01pack的状态转移方程了#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define PI acos(-1.0)#define max(a,b) (a)>(b)? (a):(b)#define min(a,b) (a)>(b)? (b):(a)#define INT_MIN -0x7FFFFFFF#define INT_MAX 0x7FFFFFFFint main(){ int i,j,k,n,ts,tf,ans; int s[110],f[110],ff[200010]; int base=100000; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d%d",&s[i],&f[i]); } for(i=0; i<=200000; i++) ff[i]=INT_MIN; ff[base]=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( ff[j-s[i]]>INT_MIN) { ff[j]=max(ff[j],ff[j-s[i]]+f[i]); } } } else { for(j=s[i]; j<=200000+s[i]; j++)//为- 则顺序,这两处的循环方向其实都是为了只选择一次01pack { if(ff[j-s[i]]>INT_MIN) { ff[j]=max(ff[j],ff[j-s[i]]+f[i]); } } } } int ma=INT_MIN; for(i=base; i<=200000; i++) { if(ff[i]>=0) ma=max(ma,ff[i]+i-base);//+base } printf("%d\n",ma); return 0;}
- poj 2184 Cow Exhibition
- POJ 2184 Cow Exhibition
- Poj 2184 Cow Exhibition
- poj 2184 Cow Exhibition
- poj 2184 Cow Exhibition
- POJ 2184 Cow Exhibition
- POJ-2184-Cow Exhibition
- POJ 2184 Cow Exhibition
- poj 2184 Cow Exhibition
- poj 2184 Cow Exhibition
- poj 2184 Cow Exhibition
- poj 2184--Cow Exhibition
- POJ 2184Cow Exhibition
- poj 2184 Cow Exhibition
- poj 2184:Cow Exhibition
- poj-2184-Cow Exhibition
- POJ 2184 Cow Exhibition
- Poj 2184 Cow Exhibition
- 用Quickfix详解Fix(二)--运行源码
- Oracle同义词创建及其作用
- 闰日闰年问题 大年份计算
- 【7gyy】笔者支招:救出Win 7菜单附件“迷路”的工具
- 进程死锁及解决方案
- POJ 2184 Cow Exhibition
- 整理一些常见的java及android面试题(1)
- weinre安装及使用
- fn函数
- CentOs 配置网卡
- DB2创建新用户及授权研究
- C++11特性--统一的初始化,std::initializer_list
- 用Quickfix详解Fix(三)---概念性基础
- ORACLE创建表空间、删除用户与建立用户及权限及导入导出脚本