POJ 1015
#include<iostream>
#include<algorithm>
#define MAXN 201
#define count C_ount
using namespace std; int _m[][];
int count[][];
int a[]; struct _node
{
int first;
int second;
}; _node _cand[MAXN];
int n;
int main()
{
//freopen("acm.acm","r",stdin);
int m;
int i;
int j;
int time;
int max;
int u;
int v;
int u_v;
int _i;
int _j;
int _test_time = ;
int index;
int ans;
while(cin>>n>>m,n||m)
{
memset(count,-,sizeof(count));
memset(_m,-,sizeof(_m));
max = m*;
for(i = ; i < n; ++ i)
{
cin>>u>>v;
_cand[i].first = u - v;
_cand[i].second = u + v;
}
for(i = ; i < n; ++ i)
{
if(count[][max+_cand[i].first] < _cand[i].second)
{
_m[][max+_cand[i].first] = i;
count[][max+_cand[i].first] = _cand[i].second;
}
}
for(time = ; time < m-; ++ time)
{
for(u_v = ; u_v <= max*; ++ u_v)
{
if(_m[time][u_v] != -)
{
for(i = ; i < n; ++ i)
{
if(count[time+][u_v + _cand[i].first] < count[time][u_v] + _cand[i].second)
{
_j = u_v;
for(_i = time; _i >= ; -- _i)
{
if(_m[_i][_j] == i)
break;
_j -= _cand[_m[_i][_j]].first;
}
if(_i < )
{
_m[time+][u_v+_cand[i].first] = i;
count[time+][u_v+_cand[i].first] = count[time][u_v] + _cand[i].second;
}
}
}
}
}
} ///////////// for(i = ; i <= max; ++ i)
{
int tem_1 = count[m-][max+i];
int tem_2 = count[m-][max-i];
if( (tem_1 = count[m-][max+i]) >= || (tem_2 = count[m-][max-i]) >= )
{
if(tem_1 > tem_2)
{
ans = max+i;
}
else
{
ans = max-i;
}
break;
}
}
cout<<"Jury #"<<++ _test_time<<endl;
cout<<"Best jury has value "<<(count[m-][ans] + (ans - max))/<<" for prosecution and value "<<(count[m-][ans] - (ans - max))/<<" for defence:"<<endl;
j = ans;
index = ;
for(i = m-; i >= ; -- i)
{
a[index ++] = _m[i][j];
j -= _cand[_m[i][j]].first;
}
sort(a,a+index);
for(i = ; i < index; ++ i)
{
cout<<" "<<a[i]+;
}
cout<<endl;
cout<<endl;
}
}
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

技术网站地址: vmfor.com
POJ 1015的更多相关文章
- OpenJudge 2979 陪审团的人选 / Poj 1015 Jury Compromise
1.链接地址: http://bailian.openjudge.cn/practice/2979 http://poj.org/problem?id=1015 2.题目: 总Time Limit: ...
- 背包系列练习及总结(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 ...
- POJ 1015 Jury Compromise 2个月后重做,其实这是背包题目
http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从 ...
- (最优m个候选人 和他们的编号)Jury Compromise (POJ 1015) 难
http://poj.org/problem?id=1015 Description In Frobnia, a far-away country, the verdicts in court t ...
- POJ 1015 Jury Compromise dp分组
第一次做dp分组的问题,百度的~~ http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑 ...
- [Poj 1015] Jury Compromise 解题报告 (完全背包)
题目链接:http://poj.org/problem?id=1015 题目: 题解: 我们考虑设计DP状态(因为这很显然是一个完全背包问题不是吗?) dp[j][k]表示在外层循环到i时,选了j个人 ...
- POJ #1015 - Jury Compromise - TODO: POJ website issue
(poj.org issue. Not submitted yet) This is a 2D DP problem, very classic too. Since I'm just learnin ...
- Jury Compromise POJ - 1015 dp (标答有误)背包思想
题意:从 n个人里面找到m个人 每个人有两个值 d p 满足在abs(sum(d)-sum(p)) 最小的前提下sum(d)+sum(p)最大 思路:dp[i][j] i个人中 和 ...
- HDU POJ 1015 Jury Compromise(陪审团的人选,DP)
题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团.选m人的办法是:控方和辩方会根据对候 ...
- poj 1015 Jury Compromise_dp
题意:n个陪审团,每个陪审团有x,y值,选出m个陪审团,要求 (sum(xi)-sum(yi))最少,当 (sum(xi)-sum(yi))最少有多个,取sum(xi)+sum(yi)最大那个 ,并顺 ...
随机推荐
- 2018.07.25 bzoj2125: 最短路(圆方树+倍增)
传送门 人生的第一道仙人掌. 这道题求是仙人掌上的最短路. 先建出圆方树,然后用倍增跑最短路,当lca" role="presentation" style=" ...
- Docker swarm结合Openresty部署rabbitmq集群
Docker swarm结合Openresty部署rabbitmq集群 大家好,年底了,年味儿越来越浓了.2019年的寒冬被定义为未来10年中最好的一年,对于这一说法悲观的人和乐观的人的理解是不一样的 ...
- 使用async-http-client实现异步批量http请求
最近项目中需要在微服务中调用rest接口,而且需要调用得次数很多,所以同步得http客户端已经不满足要求,在网上查阅资料后发现了async-http-client这个包得性能不错,所以写了个demo测 ...
- 前端程序员经常忽视的一个 JavaScript 面试题
题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { ...
- 修改Python IDLE代码配色及语法高亮主题
初学Python,想必大家拿来练习最多的IDE就是Python自带的IDLE了,但是默认的代码配色及语法高亮主题确实很不适应,所以我们需要做个小小的美化,比如像下面这样我做的美化配置: HOW TO ...
- MEF程序设计指南
############################################################################################## ##### ...
- PAT甲 1001. A+B Format (20) 2016-09-09 22:47 25人阅读 评论(0) 收藏
1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...
- 探求Floyd算法的动态规划本质
Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...
- hdu 5020 求3点共线的组合数
http://acm.hdu.edu.cn/showproblem.php?pid=5020 求3点共线的组合数 极角排序然后组合数相加 #include <cstdio> #includ ...
- oracle 游标实现多重循环
declare -- Local variables here i integer; cursor c_province is select ds.swjg_dm from dm_swjg ds wh ...