标签:des style blog color java os io strong
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 266 Accepted Submission(s): 87
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 using namespace std; 6 7 int a1[6], b1[6]; //a1即为A手里有什么牌即单、对、三个、炸弹、王炸 ,b1是对应a1最大的牌,下面a2\b2也是这样 8 int a2[6], b2[6]; 9 char s1[25]; 10 char s2[25]; 11 int c1[25]; 12 int c2[25]; 13 14 void change(int *c,int t){ 15 int a[6], b[6], i; 16 memset(a,0,sizeof(a)); 17 memset(b,0,sizeof(b)); 18 for(i=1;i<=13;i++){ 19 if(c[i]){ 20 b[1]=max(b[1],i); 21 if(c[i]==1){ 22 a[1]++; 23 } 24 else if(c[i]==2){ 25 a[2]++; 26 b[2]=max(b[2],i); 27 } 28 else if(c[i]==3){ 29 a[3]++; 30 b[3]=max(b[3],i); 31 } 32 else if(c[i]==4){ 33 a[4]++; 34 b[4]=max(b[4],i); 35 } 36 } 37 } 38 if(c[14]&&c[15]){ 39 b[1]=15; 40 a[5]++; 41 } 42 else if(c[14]){ 43 b[1]=14; 44 } 45 else if(c[15]){ 46 b[1]=15; 47 } 48 if(t==1){ 49 for(i=1;i<=5;i++) { 50 a1[i]=a[i]; 51 b1[i]=b[i]; 52 } 53 } 54 else{ 55 for(i=1;i<=5;i++) { 56 a2[i]=a[i]; 57 b2[i]=b[i]; 58 } 59 } 60 61 } 62 63 int pan(char c){ 64 if(c>=‘3‘&&c<=‘9‘) return c-‘2‘; 65 switch(c){ 66 case ‘T‘:return 8; 67 case ‘J‘:return 9; 68 case ‘Q‘:return 10; 69 case ‘K‘:return 11; 70 case ‘A‘:return 12; 71 case ‘2‘:return 13; 72 case ‘X‘:return 14; 73 case ‘Y‘:return 15; 74 } 75 } 76 77 78 void input(){ 79 int i, j; 80 memset(a1,0,sizeof(a1)); 81 memset(b1,0,sizeof(b1)); 82 memset(a2,0,sizeof(a1)); 83 memset(b2,0,sizeof(b2)); 84 memset(c1,0,sizeof(c1)); 85 memset(c2,0,sizeof(c2)); 86 87 scanf("%s%s",s1,s2); 88 for(i=0;i<strlen(s1);i++){ 89 j=pan(s1[i]); 90 c1[j]++; //把A手里的牌转换为数字,数字大小即为牌的大小 91 } 92 for(i=0;i<strlen(s2);i++){ 93 j=pan(s2[i]); 94 c2[j]++; //B手里牌转换为数字 95 } 96 change(c1,1); //处理A手里有什么类型牌和该类型最大的牌 97 change(c2,2); //处理B手里有什么牌和该类型最大的牌 98 } 99 100 void output(){ 101 int i, j; 102 int flag1, flag2; 103 int n1=strlen(s1); 104 int n2=strlen(s2); 105 if((n1==1)||(n1==2&&a1[2])||(n1==3&&a1[3])||(n1==4&&(a1[4]||a1[3]))||(n1==5&&a1[2]&&a1[3])||(n1==6&&a1[2]&&a1[4])){ 106 printf("Yes\n");//一次出完 107 } 108 else if(a1[5]){ 109 printf("Yes\n"); //A手里有王炸 110 } 111 else if(a2[5]){ 112 printf("No\n"); //B手里有王炸 113 } 114 else if(b1[4]>b2[4]){ 115 printf("Yes\n"); //A手里的炸弹比B手里的炸弹大 116 } 117 else if(b1[4]<b2[4]){ //反之 118 printf("No\n"); 119 } 120 else if(b1[1]>b2[1]){ //出单,且单比B的大 121 printf("Yes\n"); 122 } 123 else if(b1[2]>b2[2]){ //出对,且对比B的大 124 printf("Yes\n"); 125 } 126 else if(b1[3]&&(b1[3]>b2[3]||(b1[1]&&!b2[1])||(b1[2]&&!b2[2]))){ //出3张时,可以带1张也可以带2张也可以不带,依次判断 127 printf("Yes\n"); 128 } 129 else { 130 printf("No\n"); 131 } 132 } 133 134 main() 135 { 136 int t, i, j, k; 137 cin>>t; 138 while(t--){ 139 input(); 140 output(); 141 142 } 143 }
标签:des style blog color java os io strong
原文地址:http://www.cnblogs.com/qq1012662902/p/3898000.html