雀圣冒险 模拟"/>
E.FanFan的雀圣冒险 模拟
注意大四喜考虑全部14张牌
其他只先计数13张牌的数量 相当于再摸
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e6+5;
ll T,p1[105],p2[105],p3[105],p4[105],m;
char c;
void solve(){memset(p1,0,sizeof p1);memset(p2,0,sizeof p2);memset(p3,0,sizeof p3);memset(p4,0,sizeof p4);bool flag=false;for(int i=1;i<=13;i++){cin>>m>>c;if(c=='m')p1[m]++;if(c=='p')p2[m]++;if(c=='s')p3[m]++; //1-9 if(c=='z')p4[m]++; //这一种1-7 }cin>>m>>c;if(p1[1]==1 && p1[9]==1 && p2[1]==1 && p2[9]==1 && p3[1]==1 && p3[9]==1 && p4[1]==1 && p4[2]==1 && p4[3]==1 && p4[4]==1 && p4[5]==1 && p4[6]==1 && p4[7]==1) {if(c=='z') //排除2z-7z不行的问题 flag=true;if(m==1 || m==9) //害怕1z重复判断 flag=true;}if(p1[1]==3 && p1[2]==1 && p1[3]==1 && p1[4]==1 && p1[5]==1 && p1[6]==1 && p1[7]==1 && p1[8]==1 && p1[9]==3 && c=='m'){flag=true;}if(p2[1]==3 && p2[2]==1 && p2[3]==1 && p2[4]==1 && p2[5]==1 && p2[6]==1 && p2[7]==1 && p2[8]==1 && p2[9]==3 && c=='p'){flag=true;}if(p3[1]==3 && p3[2]==1 && p3[3]==1 && p3[4]==1 && p3[5]==1 && p3[6]==1 && p3[7]==1 && p3[8]==1 && p3[9]==3 && c=='s'){flag=true;}if(c=='m')p1[m]++;if(c=='p')p2[m]++;if(c=='s')p3[m]++;if(c=='z')p4[m]++;//1-7if(p4[1]==3 && p4[2]==3 && p4[3]==3 && p4[4]==3){ //1-4已经有3张了 只剩1张 for(int i=1;i<=9;i++){if(p1[i]>=2 || p2[i]>=2 || p3[i]>=2){flag=true;}if(i>=5 && i<=7 && p4[i]>=2){flag=true;}}}cout<<(flag==true?"YES":"NO")<<endl;
}
int main(){cin>>T;while(T--){solve();}return 0;
}
更多推荐
E.FanFan的雀圣冒险 模拟
发布评论