[POJ1015]Jury Compromise
题目大意:要求你从n个人中选出m个,每个人有两个值p[i],D[i],要求选出的人p总和与D总和的差值最小。若有相同解,则输出p总+D总最大的方案。
动态规划。
一直在想到底是n枚举外面还是m放外面,好像两者都可以?
做了越来越多的那种“当前层改变下一层”,乍一看题解还以为这是道斜率优化呢。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf 1000000000
using namespace std;
int cas,minpd,n,m;
][],path[][],answer[];
],b[];
int main()
{
scanf("%d%d",&n,&m);
||m!=)
{
cas++;printf("Jury #%d\n",cas);
;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
memset(f,-,,sizeof(path));
minpd=m*;
f[][minpd]=;
;j<m;j++)
;k<=minpd*;k++)
;i<=n;i++)
&&f[j][k]+a[i]+b[i]>f[j+][k+a[i]-b[i]])
{
int t1=j,t2=k;
&&path[t1][t2]!=i)
{
t2-=a[path[t1][t2]]-b[path[t1][t2]];t1--;
}
)
{
f[j+][k+a[i]-b[i]]=f[j][k]+a[i]+b[i];
path[j+][k+a[i]-b[i]]=i;
}
}
,k;
&&f[m][i-j]<)j++;
if(f[m][i+j]<f[m][i-j])k=i-j;else k=i+j;
printf("Best jury has value %d for prosecution and value %d for defence:\n",
(k-minpd+f[m][k])/,(f[m][k]-k+minpd)/);
;i<=m;i++)
{
answer[i]=path[m-i+][k];
k-=a[answer[i]]-b[answer[i]];
}
sort(answer+,answer+m+);
;i<=m;i++)printf("%d ",answer[i]);
printf("\n\n");
scanf("%d%d",&n,&m);
}
}
poj1015
最近感觉剪贴板出了点问题,代码提交上去动不动就是too long。。。
[POJ1015]Jury Compromise的更多相关文章
- poj1015 Jury Compromise【背包】
Jury Compromise Time Limit: 1000MS Memory Limit: 65536K Total Submissions:32355 Accepted:8722 ...
- POJ-1015 Jury Compromise(dp|01背包)
题目: In Frobnia, a far-away country, the verdicts in court trials are determined by a jury consisting ...
- poj1015 Jury Compromise[背包]
每一件物品有两个属性.朴素思想是把这两种属性都设计到状态里,但空间爆炸.又因为这两个属性相互间存在制约关系(差的绝对值最小),不妨把答案设计入状态中,设$f[i][j]$选$i$个人,两者之差$j$. ...
- $POJ1015\ Jury\ Compromise\ Dp$/背包
洛谷传送门 $Sol$ 这是一道具有多个“体积维度”的$0/1$背包问题. 把$N$个候选人看做$N$个物品,那么每个物品有如下三种体积: 1.“人数”,每个候选人的“人数”都是$1$,最终要填满容积 ...
- POJ 1015 Jury Compromise(双塔dp)
Jury Compromise Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 33737 Accepted: 9109 ...
- HDU 1015 Jury Compromise 01背包
题目链接: http://poj.org/problem?id=1015 Jury Compromise Time Limit: 1000MSMemory Limit: 65536K 问题描述 In ...
- 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)
作为一个oier,以及大学acm党背包是必不可少的一部分.好久没做背包类动规了.久违地练习下-.- dd__engi的背包九讲:http://love-oriented.com/pack/ 鸣谢htt ...
- 【题解】Jury Compromise(链表+DP)
[题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...
- poj 1015 Jury Compromise(背包+方案输出)
\(Jury Compromise\) \(solution:\) 这道题很有意思,它的状态设得很...奇怪.但是它的数据范围实在是太暴露了.虽然当时还是想了好久好久,出题人设了几个限制(首先要两个的 ...
随机推荐
- codeforces gym 100694 M The Fifth Season (巴什博奕)
题目链接 一直觉得巴什博奕是最简单的博弈遇到肯定没问题,结果被虐惨了,看完标程错了10多遍都没反应过来,当然标程题解和代码的意思也写反了,但是还是想对自己说一句mdzz,傻啊!!!这道题很不错,我觉得 ...
- 生成Geometry
// 由一组点集生成一张三角面片网格Geometry osg::Geometry* createTRIANGLESGeometry(MyMesh &mesh) { osg::ref_ptr&l ...
- SQLServer 批量插入数据的两种方法
SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...
- xmpp xml基本语义
基本语义 9.2.1 消息语义 <message/>节种类可被看作“推”机制,一个实体推信息给其它实体,与 EMAIL 系统中发生的通信类似.所有消息节应该拥有‘to’ 属性,指定有意的消 ...
- October 2nd 2016 Week 41st Sunday
The road to success is lined with many tempting parking spaces. 通往成功的路边充斥着许多诱人的休息区. Exhausted, I thi ...
- backBarButtonItem 替换
最上级vc里面加 下级设置生效 UIImage* image = [UIImage imageNamed:@"back_button.png"]; [item setBackBut ...
- WebService – 3.后台调用WebService,根级别上的数据无效
1.因为我的webservice返回的是json, 2.ajax传递跨域不安全, 3.contentType: "application/json; charset=utf-8", ...
- 与你相遇好幸运,The Moe Node.js Code Style Guide
The Moe Node.js Code Style Guide By 一个最萌的开发者 @2016.9.21 >>代码是人来阅读的,格式规范的代码是对编程人员最好的礼物 :) > ...
- HTML5学习之画布和SVG(四)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- wp8 入门到精通 生命周期