0-1背包Big Event in HDU
来源:互联网 发布:python 执行adb shell 编辑:程序博客网 时间:2024/04/30 02:17
Big Event in HDU
http://acm.hdu.edu.cn/showproblem.php?pid=1171
#include<stdio.h>
#include<string.h>
int max(int x,int y)
{
return x>y ? x:y;
}
int e[50000],dp[50000];
int main()
{
int a,b,c,sum,i,j,l;
while(scanf("%d",&a),a>=0)
{
memset(dp,0,sizeof(dp));
sum=0;
l=0;
for(i=0;i<a;i++)
{
scanf("%d%d",&b,&c);
sum+=b*c;
while(c--)
e[l++]=b;
}
for(i=0;i<l;i++)
for(j=sum/2;j>=e[i];j--)
dp[j]=max(dp[j],dp[j-e[i]]+e[i]);
printf("%d %d\n",sum-dp[sum/2],dp[sum/2]);
}
return 0;
}
多重背包
#include<iostream>
#include<string>
using namespace std;
int dp[300000],a[55],num[55];
int max(int x,int y)
{
return x>y?x:y;
}
int main()
{
int i,j,k,n;
while(cin>>n,n>=0)
{
int sum=0;
for(i=1;i<=n;i++)
{
cin>>a[i]>>num[i];
sum+=a[i]*num[i];
}
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
for(j=1;j<=num[i];j++)
for(k=sum/2;k>=a[i];k--)
dp[k]=max(dp[k],dp[k-a[i]]+a[i]);
cout<<sum-dp[sum/2]<<" "<<dp[sum/2]<<endl;
}
return 0;
}
- 0-1背包Big Event in HDU
- HDU 1171(Big Event in HDU)0-1背包问题
- 0-1背包 HDU 1171---Big Event in HDU
- Big Event in HDU 背包
- HDU Big Event in HDU - 多重背包
- [HDU 1171 Big Event in HDU]背包
- HDOJ Big Event in HDU 多重背包
- Big Event in HDU (多重背包)
- Big Event in HDU hdu1171 多重背包
- Big Event in HDU(多重背包)
- Big Event in HDU(多重背包问题)
- HDU1171:Big Event in HDU(01背包)
- HDU1171:Big Event in HDU(多重背包)
- Big Event in HDU 多重背包~
- hdu1171 Big Event in HDU (多重背包)
- hdu1171---Big Event in HDU(多重背包)
- hdu1171 Big Event in HDU 01-背包
- Big Event in HDU+完全背包问题
- 高等几何——变换群与几何学8
- Ubuntu下编译matlab eigen时: undefined reference to `engOpen'
- OGG的extract进程checkpoint时间点回到1988-01-01 00:00:00故障处理
- PRCI-1113 : Directory /u01/app/grid/11.2.0/gridhome does not exist
- springmvc与struts2的区别
- 0-1背包Big Event in HDU
- 关于SVN+sersync实时同步到远程服务器的思路
- 数据库(oracle)表解锁
- CF #278 div2 D Strip 线段树+优先队列
- poj3260 混合背包
- Junit4
- 导出、导入模块:《二 -- 针对【文件夹节点】》
- nyoj 21 三个水杯
- Hduoj1210【数学】