bc41第一题
德州扑克的背景,给出五张牌,问最少要换多少张牌能凑齐同花顺
其实很水,数据量很小,随便暴力,越粗暴越好,然后我wa了一发因为没有看全题目,101112131也是一组同花顺```
总之就是虽然出的很快,但是wa一发的罚时还是不好受啊!!!
1 #include<stdio.h> 2 #include<string.h> 3 4 bool vis[5][15]; 5 char s[5]; 6 7 int main(){ 8 int T; 9 while(scanf("%d",&T)!=EOF){ 10 while(T--){ 11 memset(vis,0,sizeof(vis)); 12 int i; 13 for(i=1;i<=5;i++){ 14 scanf("%s",s); 15 int t; 16 if(strlen(s)==2){ 17 t=s[1]-'0'; 18 } 19 else if(strlen(s)==3){ 20 t=10+(s[2]-'0'); 21 } 22 if(s[0]=='A'){ 23 vis[1][t]=1; 24 } 25 if(s[0]=='B'){ 26 vis[2][t]=1; 27 } 28 if(s[0]=='C'){ 29 vis[3][t]=1; 30 } 31 if(s[0]=='D'){ 32 vis[4][t]=1; 33 } 34 } 35 int j,k,ans=0; 36 for(i=1;i<=4;i++){ 37 for(j=1;j<=9;j++){ 38 int tmp=0; 39 for(k=0;k<=4;k++){ 40 if(vis[i][j+k])tmp++; 41 } 42 if(tmp>ans)ans=tmp; 43 } 44 int tmp=0; 45 for(j=10;j<=13;j++){ 46 if(vis[i][j])tmp++; 47 } 48 if(vis[i][1])tmp++; 49 if(tmp>ans)ans=tmp; 50 } 51 52 printf("%d ",5-ans); 53 } 54 } 55 return 0; 56 }