Question:http://poj.org/problem?id=1015
问题点:DP。
 Memory: 1352K        Time: 94MS
Language: C++ Result: Accepted #include <iostream>
#include <vector>
using namespace std;
#define MAX_JURY 201
#define MAX_CHOICE 21 //人员编号从1开始
int dp[][];//21是人 840是辩控差 值是辩控和
vector<int> path[][];//值是最后一条路径
struct jury{
int minus;//辩控差
int sum;//辩控和
};
int main()
{
int total,choice,zero;
jury pool[MAX_JURY];
int eg = ;
while(cin>>total>>choice && (total> && choice>))
{
zero = *choice;//实际零点值
memset(pool,,total);
for(int i=,pi,di;i<=total;i++)
{
cin>>pi>>di;
pool[i].minus = di - pi;
pool[i].sum = di + pi;
}
memset(dp,-,sizeof(dp));
for(int i=;i<;i++)
for(int j=;j<;j++)
path[i][j].clear(); dp[][zero] = ;
for(int k=;k<=total;k++)
{
for(int i=choice;i>;i--)//更新路径先长后短,避免交叉覆盖
{
for(int j=;j<=*zero;j++)
{
if(dp[i-][j]>=)
{
if(dp[i][j+pool[k].minus] < dp[i-][j] + pool[k].sum)
{
dp[i][j+pool[k].minus] = dp[i-][j] + pool[k].sum;
path[i][j+pool[k].minus] = path[i-][j];
path[i][j+pool[k].minus].push_back(k);
}
}
}
}
}
int idx;
for(idx=;dp[choice][zero-idx]==- && dp[choice][zero+idx]==-;idx++);
int v = dp[choice][zero-idx]>dp[choice][zero+idx]?-idx:idx;
idx = zero + v;
cout << "Jury #" << eg++ <<endl;
cout << "Best jury has value "<<(dp[choice][idx]-v)/<<" for prosecution and value "<<(dp[choice][idx]+v)/<<" for defence:"<<endl; for(int l=;l<choice;l++)
{
cout << " "<< path[choice][idx][l] ;
}
cout<<endl;
}
   return 0;
}

北大ACM(POJ1015-Jury Compromise)的更多相关文章

  1. poj1015 Jury Compromise【背包】

    Jury Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:32355   Accepted:8722   ...

  2. POJ-1015 Jury Compromise(dp|01背包)

    题目: In Frobnia, a far-away country, the verdicts in court trials are determined by a jury consisting ...

  3. [POJ1015]Jury Compromise

    题目大意:要求你从n个人中选出m个,每个人有两个值p[i],D[i],要求选出的人p总和与D总和的差值最小.若有相同解,则输出p总+D总最大的方案. 动态规划. 一直在想到底是n枚举外面还是m放外面, ...

  4. poj1015 Jury Compromise[背包]

    每一件物品有两个属性.朴素思想是把这两种属性都设计到状态里,但空间爆炸.又因为这两个属性相互间存在制约关系(差的绝对值最小),不妨把答案设计入状态中,设$f[i][j]$选$i$个人,两者之差$j$. ...

  5. $POJ1015\ Jury\ Compromise\ Dp$/背包

    洛谷传送门 $Sol$ 这是一道具有多个“体积维度”的$0/1$背包问题. 把$N$个候选人看做$N$个物品,那么每个物品有如下三种体积: 1.“人数”,每个候选人的“人数”都是$1$,最终要填满容积 ...

  6. ACM - 动态规划 - UVA323 Jury Compromise

    UVA323 Jury Compromise 题解 考虑用动态规划.该问题要求解的最终状态为,选出的 \(m\) 个人,使得辩方总分与控方总分差的绝对值最小,总分之和最大.即 \(\left| D(\ ...

  7. 背包系列练习及总结(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 ...

  8. 北大ACM - POJ试题分类(转自EXP)

    北大ACM - POJ试题分类 -- By EXP 2017-12-03 转载请注明出处: by EXP http://exp-blog.com/2018/06/28/pid-38/ 相关推荐文: 旧 ...

  9. Jury Compromise

    K - Jury Compromise 参考:ACM POJ 1015 Jury Compromise(陪审团的人选,动态规划题,难) 说实话真有点难想,用一个DP[i][j]来表示在选取i个人,辩控 ...

  10. POJ 1015 Jury Compromise(双塔dp)

    Jury Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 33737   Accepted: 9109 ...

随机推荐

  1. 『NSOperation、NSOperationQueue』详解

    1. NSOperation.NSOperationQueue 简介 NSOperation.NSOperationQueue 是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.N ...

  2. C#在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)

    1.第一种使用shell命令实现: private DiskInfo LinuxGetFolderDiskInfo(string path) { DiskInfo disk = new DiskInf ...

  3. Linux bash: scp: command not found的问题记录

    ,总结 scp成功,须要两个server都安装了scp服务才行.

  4. HDU1864_最大报销额(背包/01背包)

    解题报告 pid=1864">题目传送门 #include <cstdio> #include <cstring> #include <iostream& ...

  5. Codeforces Beta Round #2 B. The least round way

    这个2B题还好~~ 题目大意: 给出一个矩阵.从左上走到右下,仅仅能往右或下走.路径中每一个格子有一个数.这些数相乘得出一个数. 求这个数末尾零最少的一条路径. 解题思路: 找出一条路径.乘积得数中素 ...

  6. Linux服务器 /var/spool/clientmqueue 目录下产生大量文件的删除办法

    检查linux发现server中的磁盘分区空间超过98%,登录到服务器查看 [root@localhost etc]# df -hFilesystem 容量 已用 可用 已用% 挂载点/dev/hda ...

  7. cssTest

    html <!doctype html> <html> <head> <meta charset="utf-8"> <meta ...

  8. [Android6.0][RK3399] 双屏异显代码实现流程分析(二)【转】

    本文转载自:http://blog.csdn.net/dearsq/article/details/55050125 Patch Code dtsi rk3399-androiddtsi rk3399 ...

  9. Java源码——String

    最近在研究java的源代码,但是由于自己英语水平有限,所以想使用中文注释的方式把源码里的方法全部重写 一遍,下面是楼主整理出来的一小部分.我把整体的项目托管到GitHub上了,欢迎大家前去交流学习. ...

  10. E20170527-ts

    asset   n. 资产,财产; 有价值的人或物; 有用的东西; 优点; serializer  [词典] 串行(化)器(把并行数据变成串行数据的寄存器); 编程语言中,可被序列化的; inflec ...