UVA 11210 Chinese Mahjong
来源:互联网 发布:极光网络魔戒世界礼包 编辑:程序博客网 时间:2024/06/11 05:36
乍一看很大的一道模拟 其实还好 比斗地主什么的还是好判多了 而且没有什么坑点 首先开一个大小为34的数组来存每张牌有多少个 然后把枚举把每一张牌加进去看和不和( 如果已经有4张 就不能再加了) 首先枚举对子 然后 开始dfs跑顺子和刻子(我们那不这么称呼) 跑出4个就返回1 第一次1A这种模拟题 很开森
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;const int mod=1000000007;const int maxn=2000+5;const int inf=1e9;const char cha[100][100]={ "1T","2T","3T","4T","5T","6T","7T","8T","9T", "1S","2S","3S","4S","5S","6S","7S","8S","9S", "1W","2W","3W","4W","5W","6W","7W","8W","9W", "DONG","NAN","XI","BEI","ZHONG","FA","BAI"};char a[100];int num[50];void init(){ memset(num,0,sizeof(num));}void READ(){ for(int i=0; i<34; i++) { if(strcmp(a,cha[i])==0) { num[i]++; return; } }}int dfs(int cnt){ if(cnt==4) return 1; for(int i=0; i<34; i++) if(num[i]) { if(num[i]>=3) { num[i]-=3; if(dfs(cnt+1)) { num[i]+=3; return 1; } num[i]+=3; } if((i>=0&&i<=6)||(i>=9&&i<=15)||(i>=18&&i<=24)) if(num[i]&&num[i+1]&&num[i+2]) { num[i]--; num[i+1]--; num[i+2]--; if(dfs(cnt+1)) { num[i]++; num[i+1]++; num[i+2]++; return 1; } num[i]++; num[i+1]++; num[i+2]++; } } return 0;}int go(){ for(int i=0; i<34; i++) { if(num[i]>=2) { num[i]-=2; if(dfs(0)) { num[i]+=2; return 1; } num[i]+=2; } } return 0;}int main(){ int test=1; while(~scanf("%s",a)) { init(); int k=12; vector<int>ans; if(a[0]=='0')break; READ(); while(k--) { scnaf("%s",a); READ(); } for(int i=0; i<34; i++) if(num[i]!=4) { num[i]++; if(go()) ans.push_back(i); num[i]--; } printf("Case %d:",test++); if(ans.size()) for(int i=0; i<ans.size(); i++) printf(" %s",cha[ans[i]]); else printf(" Not ready"); puts(""); } return 0;}
0 0
- uva 11210 Chinese Mahjong
- Uva-11210-Chinese Mahjong
- uva 11210 - Chinese Mahjong
- Uva 11210 Chinese Mahjong
- UVA 11210 Chinese Mahjong
- UVA 11210 Chinese Mahjong
- UVA 11210 Chinese Mahjong
- UVA - 11210 Chinese Mahjong
- UVA-11210-Chinese Mahjong
- UVA 11210 Chinese Mahjong
- UVA 11210 - Chinese Mahjong
- Uva 11210 - Chinese Mahjong
- Uva-11210-Chinese Mahjong
- UVA 11210 Chinese Mahjong
- UVA 11210 [Chinese Mahjong]
- UVA 11210 Chinese Mahjong -
- UVa 11210 - Chinese Mahjong
- UVA - 11210 Chinese Mahjong 枚举
- yii2之自己做的提示跳转
- HTML图片拉伸
- ffmpeg 详细命令列表
- 第二周项目0-
- 如何在一个页面上让多个jQuery版本共存
- UVA 11210 Chinese Mahjong
- Leetcode49: Add Digits
- 我的第一次博文
- 通过meta标签改变浏览器内核做兼容
- 编译wpa_supplicant
- Callable接口与Runnable接口的区别
- MySQLdb导入失败
- java -jar classpath心得
- iOS Auto Layout文章总结