C++-POJ1015-Jury Compromise
Java实现会MLE那我也没办法了
//辩方总分和控方总分之差简称为“辩控差”
//辩方总分和控方总分之和简称为“辩控和”
//现用f(j, k)表示,取j 个候选人,使其辩控差为k 的所有方案中,辩控和最大的那个方案
//规定,如果没法选j 个人,使其辩控差为k,那么f(j, k)的值就为-1,称方案f(j, k)不可行
//那么,如果对k 的所有可能的取值,求出了所有的f(m, k) (-20×m≤ k ≤ 20×m),那么陪审团方案自然就很容易找到了
//显然,方案f(j, k)是由某个可行的方案f(j-1, x) (-20×m ≤ x ≤ 20×m)演化而来的
//而且,由于题目中辩控差的值k 可以为负数,而程序中数租下标不能为负数
//所以,在程序中不妨将辩控差的值都加上20*m,以免下标为负数导致出错
#include<vector>
#include<cstdio>
#include<iostream>
using namespace std;
int dp[][],sub[],sum[];
vector<int> path[][];
int main() {
for(int n,m,Case=;~scanf("%d%d",&n,&m) && n && m;) {
for(int i=; i<; i++)for(int j=; j<; j++)path[i][j].clear();//清空vector
for(int i=; i<; i++)for(int j=; j<; j++)dp[i][j]=-;
for(int i = ,d,p; i <= n; i++) cin>>d>>p,sub[i] = d-p,sum[i] = d+p;
int ans = *m,x;
dp[][ans] = ;
int time1=;
for(int k = ; k <= n; k++)//选择一个
for(int i = m-; i >= ; i--)//进行逆推
for(int j = ; j < *ans; j++)
if(dp[i][j] >= ) {
if(dp[i+][j+sub[k]] <= dp[i][j] + sum[k]) {
dp[i+][j+sub[k]] = dp[i][j] + sum[k];
path[i+][j+sub[k]] = path[i][j];//每次更新都要把path全部复制过来,就是因为这个才用的vector
path[i+][j+sub[k]].push_back(k);
}
}
for(x = ; dp[m][ans+x] == - && dp[m][ans-x] == -; x++);
int temp = (dp[m][ans+x] > dp[m][ans-x]) ? x : -x;
int sumD = (dp[m][ans+temp] + temp )/;
int sumP = (dp[m][ans+temp] - temp )/;
printf( "Jury #%d\n",++Case);
printf( "Best jury has value %d for prosecution and value %d for defence:\n", sumD,sumP);
for(int i=; i < m; i++ )printf( " %d", path[m][ans+temp][i]);
printf( "\n\n" );
}
return ;
}
C++-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
题目大意:要求你从n个人中选出m个,每个人有两个值p[i],D[i],要求选出的人p总和与D总和的差值最小.若有相同解,则输出p总+D总最大的方案. 动态规划. 一直在想到底是n枚举外面还是m放外面, ...
- 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:\) 这道题很有意思,它的状态设得很...奇怪.但是它的数据范围实在是太暴露了.虽然当时还是想了好久好久,出题人设了几个限制(首先要两个的 ...
随机推荐
- jQuery笔记(五)jQuery表单验证
前言 上次我们说完jQuery中的动画之后,我们再来看一种jQuery在Web网页应用最为广泛的一种形式,这就是jQuery对表单的操作,通过jQuery对表单的操作,可以有效的提高用户体验.在此之前 ...
- STL函数 lower_bound 和 upper_bound 在算法竞赛中的用法
以前比较排斥这两个函数,遇到需要二分的情景都是手写 \(while(left<=right)\). 这次决定洗心革面记录一下这两个函数的在算法竞赛中的用法,毕竟一般不会导致TLE. 其实百度百科 ...
- 谷歌 AI 负责人谈2020 年机器学习趋势:多任务和多模态会有大突破
在上周加拿大温哥华举行的NeurIPS会议上,机器学习成为了中心议题. 来自世界范围内约1.3万名研究人员集中探讨了神经科学.如何解释神经网络输出以及人工智能如何帮助解决现实世界中的重大问题等焦点话 ...
- unity中ContentSizeFitter刷新不及时的问题
ContentSizeFitter,自适应宽高脚本要在下一帧的时候才会适应宽高.如果想立即生效,可以调用 LayoutRebuilder.ForceRebuildLayoutImmediate(rec ...
- burpsuite各个板块儿详细讲解
burpsuite实战指南,想要的都在这里:https://t0data.gitbooks.io/burpsuite/content/
- [Python]find_all函数 2020.2.7
.find_all(name,attrs,recursive,string,**kwargs) name:对标签名称的检索字符串attrs:对标签属性值的检索字符串,可标注属性检索recursive: ...
- PWA - 整体(未完)
渐进式 Web 应用(PWA) 运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序. PWA 的优势 可被发现 易安装 manifest(https://develop ...
- 【你不知道的javaScript 上卷 笔记3】javaScript中的声明提升表现
console.log( a ); var a = 2; 执行输出undefined a = 2; var a; console.log( a ); 执行输出2 说明:javaScript 运行时在编 ...
- Microsoft Visual Studio 显示行号
工具下面有一个选项
- 小I选宾馆
小 I 选宾馆 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小 I 去天津玩啦,一路上,他跟他的同学发生了许多有趣的 ...