日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jury Compromise POJ - 1015

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jury Compromise POJ - 1015 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jury Compromise POJ - 1015

題意:

在遙遠的國家佛羅布尼亞,嫌犯是否有罪,須由陪審團決定。陪審團是由法官從公眾中挑選的。先隨機挑選n個人作為陪審團的候選人,然后再從這n個人中選m人組成陪審團。選m人的辦法是: 控方和辯方會根據對候選人的喜歡程度,給所有候選人打分,分值從0到20。為了公平起見,法官選出陪審團的原則是:選出的m個人,必須滿足辯方總分和控方總分的差的絕對值最小。如果有多種選擇方案的辯方總分和控方總分的之差的絕對值相同,那么選辯控雙方總分之和最大的方案即可。

題解:

p為辯方分數,d為控方分數
我們將p-d設為體積,p+d設為價值
設dp[i][j][k]:表示在前i個人中選擇了j個人,差值為k,k的范圍是[-400,400],數組不能出現負下標,所以我們用[0,800]代替,base=400
轉移方程:
dp[i][j][k]=max(dp[i-1][j][k],dp[i-1][j-1][k-(a[i]-b[i])]+a[i]+b[i])
題目要求求出最小差值,所以轉移完方程后,我們這樣找最小值,差值一樣要總和更大的

while(dp[n][m][base-v]<0&&dp[n][m][base+v]<0) v++; if(dp[n][m][base-v]>dp[n][m][base+v]){v=base-v; } else v=base+v;

代碼:

#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; typedef long long ll; const int maxn=1e5+5; int a[210],b[210],c[210]; int dp[210][22][810]; int n,m,base=400; int main() {int k=1;while(cin>>n>>m){if(n==m&&m==0) break;for(int i=1;i<=n;i++){cin>>a[i]>>b[i];}cout<<"Jury #"<<k++<<endl;memset(dp,-0x3f,sizeof(dp));dp[0][0][base]=0;for(int i=1;i<=n;i++)for(int j=0;j<=m;j++)for(int k=0;k<=800;k++) {dp[i][j][k]=dp[i-1][j][k];int t=k-(a[i]-b[i]);if(t<0||t>800||j<1) continue;dp[i][j][k]=max(dp[i][j][k],dp[i-1][j-1][t]+a[i]+b[i]);}//尋找最小的差值,v表示的就是差值 int v=0; while(dp[n][m][base-v]<0&&dp[n][m][base+v]<0) v++;if(dp[n][m][base-v]>dp[n][m][base+v]){v=base-v;} else v=base+v;int i=n,j=m,cnt=0,s1=0,s2=0;//倒著推,確定由誰轉移而來while(j){if(dp[i][j][v]==dp[i-1][j][v]) i--;else {c[cnt++]=i;s1+=a[i];s2+=b[i];v-=(a[i]-b[i]);i--;j--;}}cout<<"Best jury has value "<<s1<<" for prosecution and value "<<s2<<" for defence:"<<endl;sort(c,c+cnt);for(int i=0;i<cnt-1;i++) cout<<c[i]<<' ';cout<<c[cnt-1]<<endl<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的Jury Compromise POJ - 1015的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。