#include "iostream.h"
#include "string.h"
#define Mid 20*20+1
#define Max 2*Mid+2
unsigned long int p2[21];
unsigned long int ans[21][Max][11];
int sum[21][Max];
int minus[220];
int plus[220];
int i,j,k,l,n,m,p,t1,t2,s;
void output(int i)
{
cout<<"Best jury has value "<<(sum[m][Mid+i]+i)/2<<" for prosecution and value "<<(sum[m][Mid+i]-i)/2<<" for defence:\n";
for (p=0;p<=n/20;p++)
for (s=0;s<=20;s++)
if ((p2[s] & ans[m][Mid+i][p]) == p2[s])
cout<<p*20+s+1<<' ';
cout<<endl<<endl;
}
void main()
{
for(p2[0]=1,i=1;i<=20;i++) p2[i]=2*p2[i-1];
for(l=1;;l++)
{
cin>>n>>m; if (n==0) break;
cout<<"Jury #"<<l<<endl;
memset(ans,0,sizeof(ans));
for (i=0;i<=20;i++) for (j=0;j<Max;j++) sum[i][j]=-1;
sum[0][Mid]=0;
for (i=0;i<n;i++) {cin>>j>>k;minus[i]=j-k;plus[i]=j+k;}
for (i=0;i<n;i++) for (s=m;s>=1;s--)
for (j=Mid-20*m;j<=Mid+20*m;j++) if (sum[s-1][j]>=0)
{
t1=sum[s-1][j]+plus[i];
t2=j+minus[i];
if (t1>sum[s][t2])
{
sum[s][t2]=t1;
for (p=0;p<=i/20;p++) ans[s][t2][p]=ans[s-1][j][p];
ans[s][t2][i/20]+=p2[i%20];
}
}
for (i=0;i<=20*m;i++)
{
if (sum[m][Mid-i]>=0 || sum[m][Mid+i]>=0)
if (sum[m][Mid-i]>sum[m][Mid+i]) {output(-i);break;}
else {output(i);break;}
}
}
}
分享到:
相关推荐
【标题】"POJ1015-Jury Compromise" 是一个编程竞赛题目,主要涉及的是动态规划(Dynamic Programming, 简称DP)的算法应用。动态规划是一种解决复杂问题的有效方法,它通过将问题分解成子问题,并存储子问题的解来...
《POJ ACM 1015 Jury Compromise:双解法深度解析》 在编程竞赛的世界里,ACM(国际大学生程序设计竞赛)是检验学子编程能力的重要舞台,而POJ(在线判题系统)是其中的一个热门平台。本文将深入探讨一道经典的POJ...
例如,1015 - Jury Compromise中的多数判决问题,可以通过比较两组人数的一半来逐步确定多数意见。1048 - Follow My Logic可能涉及二分查找,这是分治的一个典型应用,通过不断缩小搜索范围找到目标值。 在1054 - ...
- **1015**:“Jury Compromise”——涉及到状态空间树和剪枝技术。 - **2374**:“Subway tree systems”——结合图论中的最小生成树和动态规划思想。 #### 结论 通过上述分类,我们可以看到动态规划不仅包含了...
6. **动态规划(DP)**:"Dividing"、"Jury Compromise"和"Sticks"等题目可能需要用到动态规划思想,通过状态转移方程求解最优化问题。 7. **模拟**:"Joseph"、"Counterfeit Dollar"和"The Same Game"这类题目通常...
5. **动态规划(DP)**:动态规划是一种优化技术,用于求解最优化问题,例如STAMPS、Jury Compromise、Cable master等。DP常用于处理具有重叠子问题和最优子结构的问题,需要构造状态转移方程并存储中间结果。 6. *...
**1303 Jury Compromise** - 评分系统的优化 评分系统的设计,DP可以确保评分的公正性和一致性。 #### 17. **1345 Best Deal** - 商业交易决策 商业交易中,DP可以帮助商家制定最佳销售策略。 #### 18. **1360 ...
16. **1303 Jury Compromise** - **背景**: 评审团达成共识的最优化问题。 - **解法**: 动态规划找到最佳共识方案。 17. **1345 Best Deal** - **背景**: 商业交易中的最优策略。 - **解法**: 动态规划求解...
16. **1303 - Jury Compromise**:评分标准问题。 17. **1345 - Best Deal**:购物折扣问题。 18. **1360 - Radar Installation**:雷达安装的优化问题。 19. **1396 - The Umbrella Problem: 2054**:雨伞问题,...
- **1303 Jury Compromise**: 协商问题,可能涉及到博弈论思想。 - **1345 Best Deal**: 通过动态规划寻找最优解。 - **1360 Radar Installation**: 贪心算法在传感器覆盖问题上的应用。 - **1396 The Umbrella ...
1303 Jury Compromise 其实不是很难,但是很容易错,555…… 1345 Best Deal 简单题,但是也很容易错……555…… 1360 Radar Installation 简单题 1396 The Umbrella Problem: 2054 简单题 1058 Currency ...
1303 Jury Compromise 其实不是很难,但是很容易错,555…… 1345 Best Deal 简单题,但是也很容易错……555…… 1360 Radar Installation 简单题 1396 The Umbrella Problem: 2054 简单题 1058 Currency ...