「2211~2220」の編集履歴(バックアップ)一覧はこちら
「2211~2220」(2012/03/15 (木) 20:53:58) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*2219 THE BYDOLM@STER
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2219
アイドルユニットのメンバーを決める問題。
名前読み込み時の動作で一回ポカミス。
問題自体は個別の動的計画法が3つ並んでいるだけの簡単問題なので大したことはない。
#include<stdio.h>
#include<string.h>
#include <algorithm>
int vdlMemo[3][302];
void calc(int n,int m){
char name[32],re;
int c,vdl,ans=0;
memset(vdlMemo,-1,sizeof(vdlMemo));
vdlMemo[0][0]=vdlMemo[1][0]=vdlMemo[2][0]=0;
for(int i=0;i<n;i++){
scanf("%c%[^\n] %d",&re,name,&c);
for(int j=0;j<3;j++){
scanf("%d",&vdl);
for(int k=0;k<=m;k++){
if(k+c>m)continue;
if(vdlMemo[j][k]!=-1){
vdlMemo[j][k+c]=std::max(vdlMemo[j][k+c],vdlMemo[j][k]+vdl);
ans=std::max(vdlMemo[j][k+c],ans);
}
}
}
}
printf("%d\n",ans);
}
int main(){
int n,m;
while(scanf("%d",&n)!=EOF){
scanf("%d",&m);
calc(n,m);
}
}