uva 11210
来源:互联网 发布:淘宝菜鸟面单打印软件 编辑:程序博客网 时间:2024/06/05 20:01
题意:看了题解才明白题目可能胡的情况,要求让你在所有还能拿的牌中找出可能胡的牌,最简单的胡法是,在有对子的情况下,再找出三张相同的或者顺子
#include <iostream>#include <cstdio>#include <cstring>using namespace std;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[34];int convert(char *s){ for (int i = 0; i < 34; i++) if (strcmp(mahjong[i],s) == 0) return i; return -1;}bool search(int t){ for (int i = 0; i < 34; i++) if (c[i] >= 3) { if (t == 3) return true; c[i] -= 3; if (search(t+1)) return true; c[i] += 3; } for (int i = 0; i <= 24; i++) if (i % 9 <= 6 && c[i] >= 1 && c[i+1] >= 1 && c[i+2] >= 1) { if (t == 3) return true; c[i]--,c[i+1]--,c[i+2]--; if (search(t+1)) return true; c[i]++,c[i+1]++,c[i+2]++; } return false;}bool check(){ for (int i = 0; i < 34; i++) { if (c[i] >= 2) { c[i] -= 2; if (search(0)) return true; c[i] += 2; } } return false;}int main(){ int cas = 0; bool ok; char s[100]; int majiang[15]; while (scanf("%s",s) != EOF) { if (s[0] == '0') break; printf("Case %d:",++cas); majiang[0] = convert(s); for (int i = 1; i < 13; i++) { scanf("%s",s); majiang[i] = convert(s); } ok = false; for (int i = 0; i < 34; i++) { memset(c,0,sizeof(c)); int j; for (int j = 0; j < 13; j++) c[majiang[j]]++; if (c[i] >= 4) continue; c[i]++; if (check()) { ok = true; printf(" %s",mahjong[i]); } c[i]--; } if (!ok) printf(" Not ready"); printf("\n"); } return 0;}
- uva 11210
- uva 11210
- UVa 11210
- 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(回溯)
- 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 10591
- 开博之语
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务
- ubuntu终端提示符换格式
- Linux常用设置
- uva 11210
- Subversion版本控制
- How to write makefile
- 多线程和并发中SynchronousQueue的使用
- GestureDetector类及其用法
- UVA 270 Lining Up 共线点 暴力
- 进程内存布局
- Android学习笔记(21)————利用JDBC连接服务器数据库
- C语言 变量的跨文件引用