pku1015Jury Compromise-最小差最大和dp
来源:互联网 发布:怪物猎人p3武器数据库 编辑:程序博客网 时间:2024/06/05 14:45
pku1015Jury Compromise
n组数字,每组两个数字 d 和 p,要求从中选出m组,使(m个d的和)与(m个p的和)之差最大,如果有种情况的差值相同,取所有d,p总和最大的那种情况。
参考
#include<iostream>#include<string.h>#include<algorithm>using namespace std;int dp[21][801],path[21][801],v[201],s[201],list[21];bool select(int j,int k,int i){while(j>0 && path[j][k]!=i){k-=v[ path[j][k] ];j--;}return j?1:0;}int main(){int T=1,n,m,i,j,k,d,p,fix;while(scanf("%d%d",&n,&m),n+m){memset(dp,-1,sizeof(dp));memset(path,0,sizeof(path));fix=m*20;dp[0][fix]=0;for(i=1;i<=n;i++){scanf("%d%d",&d,&p);v[i]=d-p;s[i]=d+p;}for(j=1;j<=m;j++)for(k=0;k<=2*fix;k++)if(dp[j-1][k]>=0)for(i=1;i<=n;i++)if(dp[j][k+v[i]]<dp[j-1][k]+s[i])if(!select(j-1,k,i)){dp[j][k+v[i]]=dp[j-1][k]+s[i];path[j][k+v[i]]=i;}//for(i=1;i<=m;i++)printf("!%d ",list[i]);printf("\npath\n");for(k=0;k<=fix;k++)if(dp[m][fix-k]>=0||dp[m][fix+k]>=0)break;d=dp[m][fix-k]>dp[m][fix+k]?fix-k:fix+k;for(p=d,i=1;i<=m;i++){list[i]=path[m-i+1][p];p-=v[list[i]];}sort(list+1,list+m+1);printf("Jury #%d\n",T++);printf("Best jury has value %d for prosecution and value %d for defence:\n",(dp[m][d]+d-fix)/2,(dp[m][d]-d+fix)/2);for(i=1;i<=m;i++)printf(" %d",list[i]);printf("\n\n");}return 0;}/*4 2 1 2 2 3 4 1 6 2 Jury #1 Best jury has value 6 for prosecution and value 4 for defence: 2 3 */
- pku1015Jury Compromise-最小差最大和dp
- POJ 1015-Jury Compromise 背包dp最大差 记录路径
- 数字序列中的最大差和最小差对数
- 划分dp,区间差最小
- POJ3522 SlimSpan 最大边和最小边的差最小的生成树
- UVA - 1395 Slim Span(最小生成树最大边权和最小边权之差最小)
- poj 1505 dp(数列分段,最大段和最小)
- 题目三 最大最小数之差
- 求二叉树的最大深度和最小深度以及之间的差
- UVA 11796- Dog Distance(计算几何_求最大距离和最小距离之差)
- 最大高度差(暴力/DP/RMQ)
- 序列和之差最小
- DP::Poj1015 July Compromise
- HOJ 1447 Compromise (DP)
- DP----POJ1015 Jury Compromise
- POJ2250 Compromise,map、dp
- 【TOJ 1139】Compromise【DP】
- uva--531Compromise+dp
- 2012年9月编程语言排行榜
- linux下禁止root用户远程登录
- 订阅Ray’s Monthly iOS Newsletter的过程
- java基础之选择排序和冒泡排序
- Java中定时运行程序
- pku1015Jury Compromise-最小差最大和dp
- Objective C Foundation基础框架
- 编程赋予了我们什么样的改变
- apache2.4中的异步设置
- 各种排序算法的特点,时间复杂度,稳定性等
- 黑马程序员_java基础13网络编程 TCP和DNS
- TAF(Transparent Application Failover)
- 敏捷开发之初识
- C++ tinyxml解析小试及VC6.0调试中遇到的问题