POJ 2184 Cow Exhibition
2013-07-22 11:04
246 查看
无奈 无法独立解决
代码//转化为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 0x7FFFFFFF
int 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;
}
代码//转化为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 0x7FFFFFFF
int 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-01背包变形-Cow Exhibition
- POJ 2184 Cow Exhibition
- POJ 2184 Cow Exhibition 01背包
- POJ 2184 Cow Exhibition 奶牛展(01背包,变形)
- POJ 2184 Cow Exhibition
- POJ-2184 Cow Exhibition(01背包变形)
- poj 2184 Cow Exhibition
- POJ 2184 Cow Exhibition 0-1背包
- poj 2184 Cow Exhibition 背包
- poj 2184 Cow Exhibition(01背包)
- POJ 2184 Cow Exhibition(01背包升级版+负数下标处理)
- POJ 2184 Cow Exhibition
- POJ 2184 Cow Exhibition(01背包变形)
- POJ 2184 Cow Exhibition
- POJ 2184 Cow Exhibition [dp 背包]
- Cow Exhibition(POJ-2184)
- POJ 2184 Cow Exhibition [动态规划 01背包]
- poj 2184:Cow Exhibition
- POJ 2184 Cow Exhibition(01背包变形)