陪审团(01背包问题&&倒推具体方案)

博客介绍了如何使用动态规划解决一个公平陪审团选举的问题,目标是在控辩双方得分差的绝对值最小的同时,最大化总分。文章给出了输入输出格式,以及具体的解题思路和状态转移方程。
摘要由CSDN通过智能技术生成

在一个遥远的国家,一名嫌疑犯是否有罪需要由陪审团来决定。

陪审团是由法官从公民中挑选的。

法官先随机挑选N个人(编号1,2…,N)作为陪审团的候选人,然后再从这N个人中按照下列方法选出M人组成陪审团。

首先,参与诉讼的控方和辩方会给所有候选人打分,分值在0到20之间。

第 i 个人的得分分别记为p[i]和d[i]。

为了公平起见,法官选出的M个人必须满足:辩方总分D和控方总分P的差的绝对值|D-P|最小。

如果选择方法不唯一,那么再从中选择辨控双方总分之和D+P最大的方案。

求最终的陪审团获得的辩方总分D、控方总分P,以及陪审团人选的编号。

注意:若陪审团的人选方案不唯一,则任意输出一组合法方案即可。

输入格式

输入包含多组测试数据。

每组测试数据第一行包含两个整数N和M。

接下来N行,每行包含两个整数p[i]和d[i]。

每组测试数据之间隔一个空行。

当输入数据N=0,M=0时,表示结束输入,该数据无需处理。

输出格式

对于每组数据,第一行输出’Jury #C’,C为数据编号,从1开始。

第二行输出“Best jury has value P for prosecution and value D for defence:”,P为控方总分,D为辩方总分。

第三行输出按升序排列的陪审人选编号,每个编号前输出一个空格。

每组数据输出完后,输出一个空行。

数据范围

1≤N≤200,
1≤M≤20
0≤p[i],d[i]≤20

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值