【2014 Multi-University Training Contest 6】 J. Fighting the Landlords(模拟)
来源:互联网 发布:鸟巢大棚建造数据 编辑:程序博客网 时间:2024/05/01 18:01
两人斗地主简化版。己方先出,要求一次出完牌或对方要不起。
模拟,先判断己方能否一次出完,之后就从威力最大的牌开始判断就行了:是否有双王->是否有炸弹->是否有最大单牌->是否有最大pair->是否有3张->3带2->3带1
代码:
#include <cstdio>#include <cmath>#include <cstring>#include <utility>#include <algorithm>#define mod#define len 100010using namespace std;int c1[20];int c2[20];int sum1,sum2;int clear(int c[],int sum1);//判断能否一次性出完int Trio(int c[]);//寻找最大3张int Pair(int c[]);//寻找最大pairint Bomb(int c[]);//寻找最大炸弹int X_Y(int c[]);//判断是否有双王int MAX(int c[]);//寻找最大单牌int clear(int c[],int sum1){ int res=0; if(sum1==1) res= 1; else if(sum1==2&&Pair(c)) res= 1; else if(sum1==3&&Trio(c)) res= 1; else if(sum1==4&&(Trio(c)||Bomb(c))) res=1; else if(sum1==5&&Trio(c)&&Pair(c)) res=1; else if(sum1==6&&Bomb(c)) res=1; else if(X_Y(c)) res=1; return res;}int Trio(int c[]){ int flag=0; for(int i=3;i<=17;++i) if(c[i]==3) { flag=i; //break; } return flag;}int Pair(int c[]){ int flag=0; for(int i=3;i<=17;++i) if(c[i]==2) { flag=i; //break; } return flag;}int Bomb(int c[]){ int flag=0; for(int i=3;i<=17;++i) if(c[i]==4) { flag=i; //break; } return flag;}int X_Y(int c[]){ int res=0; if(c[16]==c[17]&&c[16]==1) res=1; return res;}int MAX(int c[]){ int flag=0; for(int i=3;i<=17;++i) if(c[i]>0) { flag=i; //break; } return flag;}int main(){ int T; char s1[len],s2[len]; scanf("%d",&T); while(T--) { memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); scanf("%s%s",s1,s2); sum1=strlen(s1); sum2=strlen(s2); for(int i=0;s1[i]!='\0';++i) { if(('0'<=s1[i])&&('9'>=s1[i])) c1[s1[i]-'0']+=1; if(s1[i]=='2') c1[15]++; if(s1[i]=='A') c1[14]++; else if(s1[i]=='T') c1[10]++; else if(s1[i]=='J') c1[11]++; else if(s1[i]=='Q') c1[12]++; else if(s1[i]=='K') c1[13]++; else if(s1[i]=='X') c1[16]++; else if(s1[i]=='Y') c1[17]++; } for(int i=0;s2[i]!='\0';++i) { if(('0'<=s2[i])&&('9'>=s2[i])) c2[s2[i]-'0']+=1; if(s2[i]=='2') c2[15]++; if(s2[i]=='A') c2[14]++; else if(s2[i]=='T') c2[10]++; else if(s2[i]=='J') c2[11]++; else if(s2[i]=='Q') c2[12]++; else if(s2[i]=='K') c2[13]++; else if(s2[i]=='X') c2[16]++; else if(s2[i]=='Y') c2[17]++; } if(clear(c1,sum1)) printf("Yes\n"); else { int flag=0; if(X_Y(c2)) flag=0; else if(Bomb(c1)>=Bomb(c2)&&Bomb(c1)!=0) flag=1; else if(Bomb(c1)<Bomb(c2)&&Bomb(c2)!=0) flag=0; else if(Bomb(c1)==Bomb(c2)&&Bomb(c1)==0) { if(MAX(c1)>=MAX(c2)) flag=1; else if(MAX(c1)<MAX(c2)) { if(Trio(c1)>0)// { if(!Trio(c2)) flag=1; else { int count1=0,count2=0; for(int i=3;i<=17;++i) if(c1[i]>=2) count1++; for(int i=3;i<=17;++i) if(c2[i]>=2) count2++; if(count1>1) { if(count2<=1) flag=1; else if(Trio(c1)>=Trio(c2)) flag=1; else flag=0; } else { if(sum2<4) flag=1; else if(Trio(c1)>=Trio(c2)) flag=1; else flag=0; } } } else // { int mark=0; for(int i=3;i<=17;++i) if(c2[i]>=2) mark=i; if(Pair(c1)>=mark&&Pair(c1)>0) flag=1; else flag=0; } } } printf((flag==1)?"Yes\n":"No\n"); } } return 0;}
0 0
- 【2014 Multi-University Training Contest 6】 J. Fighting the Landlords(模拟)
- 2014 Multi-University Training Contest 6 Fighting the Landlords
- hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6
- hdu 4930 Fighting the Landlords 2014 Multi-University Training Contest 6
- 2014 Multi-University Training Contest 1 - J Rating
- 2014 Multi-University Training Contest 6小记
- HDU4930:Fighting the Landlords(模拟)
- hdu4869 Turn the pokers 2014 Multi-University Training Contest 1
- 【2014 Multi-University Training Contest 3】 The Great Pan
- hdu4891 The Great Pan 2014 Multi-University Training Contest 3
- hdu4901 The Romantic Hero 2014 Multi-University Training Contest 4
- China Northeast Multi-University Training Contest I J - Remoteland
- HDU 4870 Rating 2014 Multi-University Training Contest 1 J题 概率DP+高斯消元
- 2014 Multi-University Training Contest 6——by BUPT
- 2014 Multi-University Training Contest 6 Apple Tree(数学题)
- hdu 4925 Apple Tree--2014 Multi-University Training Contest 6
- hdu 4927 Series 1--2014 Multi-University Training Contest 6
- 【2014 Multi-University Training Contest 6】 Room and Moor (栈)
- java学习篇(二)---卡片布局详解(Swing和awt)
- KVM on CubieTruck 原理以及网络性能相关思考
- Codeforces Round #260 (Div. 2)
- 解析json之org.codehaus.jackson
- Java编程规范
- 【2014 Multi-University Training Contest 6】 J. Fighting the Landlords(模拟)
- ArcGIS之计算面要素的宽度
- 关于Java 字符流和字节流
- Java设计模式--适配器(Adapter)模式
- zookeeper client分析 ***********************8
- 镇江锅盖面
- POJ 1611 The Suspects (并查集)
- UVA10534 - Wavio Sequence - 动态规划
- 大话设计模式2 策略模式 的java代码实现