2271 KUPC
解法
一番簡単な部類の問題なので集計するだけです。
#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
解法
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]);
}
最終更新:2013年02月06日 18:44