bc41第一题

德州扑克的背景,给出五张牌,问最少要换多少张牌能凑齐同花顺

其实很水,数据量很小,随便暴力,越粗暴越好,然后我wa了一发因为没有看全题目,10\11\12\13\1也是一组同花顺```

总之就是虽然出的很快,但是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\n",5-ans);
53         }
54     }
55     return 0;
56 }
View Code