UVA 11210 Chinese Mahjong -
来源:互联网 发布:淘宝网儿童帽子 编辑:程序博客网 时间:2024/05/18 11:26
题目地址:http://vjudge.net/problem/UVA-11210
打麻将判断糊了没有,没接触过麻将,所以题意一开始看的云里雾里的
#include <bits/stdc++.h>using namespace std;#define REP(i,a,b) for(int i=a;i<=(b);i++)const char* mahjong[]={"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"};int c[41];int convert(char* s){REP(i,0,33) if(strcmp(s,mahjong[i])==0) return i;return -1;}bool DFS(int dep){REP(i,0,33) if(c[i]>=3) {if(dep==3) return true;c[i]-=3;if(DFS(dep+1)) return true;c[i]+=3;}REP(i,0,24) if(i%9<=6&&c[i]>=1&&c[i+1]>=1&&c[i+2]>=1){if(dep==3) return true;c[i]--; c[i+1]--; c[i+2]--;if(DFS(dep+1)) return true;c[i]++; c[i+1]++; c[i+2]++; }return false;}bool Check(){REP(i,0,33) if(c[i]>=2){c[i]-=2; //枚举将if(DFS(0)) return true;c[i]+=2;}return false;}int main(int argc, char const *argv[]){int kase=0,mj[15];char s[10];while(scanf("%s",s)==1) {if(s[0]=='0') break;mj[0]=convert(s);REP(i,1,12) scanf("%s",s),mj[i]=convert(s);printf("Case %d:",++kase);bool ok=false;REP(i,0,33) {memset(c,0,sizeof(c));REP(j,0,12) c[mj[j]]++;if(c[i]>=4) continue;c[i]++; //任意选一张牌作为听if(Check()){printf(" %s", mahjong[i]);ok=true;}c[i]--;}if(!ok) printf(" Not ready");printf("\n");}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 枚举
- HTML头文件的各种meta设置
- session入mysql
- Map获取其键和值
- BootStrap列表组的用法
- 真正的了解事件绑定
- UVA 11210 Chinese Mahjong -
- Concurrent包详解
- Githubz中特殊的命令Git-Specific Commands
- sleep()与wait()的区别
- js中怎么绑定事件
- Codevs 2011 最小距离和
- codeforces round#347 div2 C International Olympiad 想法题
- libevent的evbuffer详解(含源码详细注释+测试用例)
- 零基础安装python的pip包