题目不难,暴力地dp一下就好,但是不知道我WA在哪里了,对拍了好多的数据都没找出错误= =。估计又是哪里小细节写错了QAQ。。思路是用dp[i][j]表示已经选了i个,差值为j的最大和。转移的话暴力枚举当前选那个即可。代码如下(WA的,以后有机会再找找错在哪里吧0.0):

 #include <stdio.h>
#include <algorithm>
#include <string.h>
#include <set>
using namespace std;
const int N = + ; int n,m;
int a[N],b[N];
struct node
{
int now,pre,val;
int a,b;
}dp[+][+]; set<int> get(int x)
{
set<int> S;
for(int i=m;i>=;i--)
{
S.insert(dp[i][x].now);
x = dp[i][x].pre;
}
return S;
} int main()
{
int kase = ;
while(scanf("%d%d",&n,&m) == )
{
if(n == & m == ) break;
for(int i=;i<=n;i++) scanf("%d%d",a+i,b+i);
for(int i=;i<=;i++) dp[][i] = (node){-,-,,,};
dp[][] = (node){,-,,,};
for(int i=;i<=m;i++)
{
for(int j=;j<=;j++)
{
dp[i][j] = (node){-,-,,,};
for(int k=;k<=n;k++)
{
int add = a[k] - b[k];
if(j-add < || j - add > ) continue;
int pre = j - add;
if(dp[i-][pre].now == -) continue;
int flag = ;
for(int p=i-;p>=;p--)
{
if(dp[p][pre].now == k)
{
flag = ;
break;
}
else pre = dp[p][pre].pre;
}
if(flag == ) continue;
if(dp[i-][j - add].val + a[k]+b[k] > dp[i][j].val)
{
dp[i][j] = (node){k,j-add,dp[i-][j - add].val + a[k]+b[k],
dp[i-][j - add].a + a[k], dp[i-][j - add].b + b[k]};
}
}
}
}
set<int> S;
int aa, bb;
for(int add=;add<=;add++)
{
if(dp[m][-add].now == - && dp[m][+add].now == -) continue;
int temp = ;
if(dp[m][-add].now != -)
{
temp = dp[m][-add].val;
S = get(-add);
aa = dp[m][-add].a, bb = dp[m][-add].b;
}
if(dp[m][+add].now != -)
{
if(dp[m][+add].val > temp)
{
S = get(+add);
aa = dp[m][+add].a, bb = dp[m][+add].b;
}
}
break;
}
printf("Jury #%d\n",kase++);
printf("Best jury has value %d for prosecution and value %d for defence:\n",aa,bb);
for(set<int>::iterator it=S.begin();it!=S.end();it++) printf(" %d",*it);
puts("\n");
}
return ;
}

POJ 1051 Jury Compromise ——(暴力DP)的更多相关文章

  1. POJ 1015 Jury Compromise(dp坑)

    提议:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团.选m人的办法是:控方和辩方会根据对候选 ...

  2. POJ 1015 Jury Compromise【DP】

    罗大神说这题很简单,,,,然而我着实写的很难过... 题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=110495#proble ...

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

  4. 【题解】Jury Compromise(链表+DP)

    [题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...

  5. POJ 1015 Jury Compromise(双塔dp)

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

  6. OpenJudge 2979 陪审团的人选 / Poj 1015 Jury Compromise

    1.链接地址: http://bailian.openjudge.cn/practice/2979 http://poj.org/problem?id=1015 2.题目: 总Time Limit: ...

  7. poj 1015 Jury Compromise(背包+方案输出)

    \(Jury Compromise\) \(solution:\) 这道题很有意思,它的状态设得很...奇怪.但是它的数据范围实在是太暴露了.虽然当时还是想了好久好久,出题人设了几个限制(首先要两个的 ...

  8. POJ 1015 Jury Compromise dp分组

    第一次做dp分组的问题,百度的~~ http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑 ...

  9. poj 1015 Jury Compromise(背包变形dp)

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

随机推荐

  1. .net core partial view的一些心得

    原文:.net core partial view的一些心得 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog. ...

  2. 组装技术的新进展 New advances in sequence assembly.

    组装技术的新进展 1.测序和组装 很难想象今天距离提出测序和组装已经有40年啦.我们回头来看一下这个问题. “With modern fast sequencing techniques and su ...

  3. java 框架-缓冲-Redis 2Jedis操作

    https://www.cnblogs.com/wlandwl/p/redis.html Redis介绍及Jedis基础操作   1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数 ...

  4. 基于【 Docker】四 || Docker常用镜像安装

    一.nginx安装 1.拉取镜像:docker pull nginx 2.启动容器:docker run -d -p 80:80 nginx 3.查看nginx:ps aux | grep 'ngin ...

  5. Recastnavigation 创建 off-mesh link 的潜规则

    Recastnavigation 在创建off-mesh link 时,发现有的off-mesh link 无法寻路(虽然在地图上能看到off-mesh link 的连线   在Google Grou ...

  6. react请求接口数据是在componentDidMount 还是componentWillMount周期好

    如果你要获取外部数据并加载到组件上,只能在组件"已经"挂载到真实的网页上才能作这事情,其它情况你是加载不到组件的.componentDidMount方法中的代码,是在组件已经完全挂 ...

  7. 【Distributed】分布式锁

    一.概述 1.1 分布式解决的核心思路 1.2 分布式锁一般有三种实现方式 二.基于Redis的分布式锁 2.1 使用常用命令 2.2 实现思路 2.3 核心代码 Maven依赖信息 LockRedi ...

  8. springboot 学习小结

    springboot 默认自动扫描和配置根包下面的类.如果启动配置不在根包目录下,得把对应的类进行配置扫描生成对应的bean. 主要的扫描注解有: @SpringBootApplication //s ...

  9. Codeforces 1187 F - Expected Square Beauty

    F - Expected Square Beauty 思路:https://codeforces.com/blog/entry/68111 代码: #pragma GCC optimize(2) #p ...

  10. web后端开发语言Java和PHP的比较

    理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果,尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持 ...