「aoj2271~2280」の編集履歴(バックアップ)一覧はこちら
「aoj2271~2280」(2013/02/06 (水) 18:44:47) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*2271 KUPC
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2271
文字列から看板を作る問題。
解法
一番簡単な部類の問題なので集計するだけです。
#include<stdio.h>
int main(){
char text[302],c;
int count[4]={0};
scanf("%s",text);
for(int i=0;text[i]!='\0';i++){
c=text[i];
if(c=='K')count[0]++;
if(c=='U')count[1]++;
if(c=='P')count[2]++;
if(c=='C')count[3]++;
}
int ans=count[0];
for(int i=0;i<4;i++)if(ans>count[i])ans=count[i];
printf("%d\n",ans);
}
*2271 KUPC
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2271
文字列から看板を作る問題。
解法
一番簡単な部類の問題なので集計するだけです。
#include<stdio.h>
int main(){
char text[302],c;
int count[4]={0};
scanf("%s",text);
for(int i=0;text[i]!='\0';i++){
c=text[i];
if(c=='K')count[0]++;
if(c=='U')count[1]++;
if(c=='P')count[2]++;
if(c=='C')count[3]++;
}
int ans=count[0];
for(int i=0;i<4;i++)if(ans>count[i])ans=count[i];
printf("%d\n",ans);
}
*2272 Cicada
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2272
通路を最小コストで移動する問題。
解法
2番目位に簡単な部類の問題なので動的計画法で一発です。
#include<stdio.h>
#include<string.h>
int main(){
int map[52][52];
char text[60];
int h,w,n;
scanf("%d %d",&h,&w);
map[0][0]=0;
for(int i=0;i<h;i++){
scanf("%s",text);
for(int j=0;j<w;j++){
n=text[j]-'0';
if(i==0&&j>0){
map[i][j]=map[i][j-1]+n;
}else if(i>0&&j==0){
map[i][j]=map[i-1][j]+n;
}else if(i>0&&j>0){
map[i][j]=(map[i-1][j]<map[i][j-1]?map[i-1][j]:map[i][j-1])+n;
}
}
}
printf("%d\n",map[h-1][w-1]);
}