UVA 11210 中国麻将
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2151
http://7xjob4.com1.z0.glb.clouddn.com/f1186ae9a93d903ab533e5fce524bac6
题意:给你一副手牌,输出这手牌所有的听牌
思路:枚举所有34种牌,依次判断是否听这牌,先枚举选出将,再枚举顺子、刻子等,递归判断。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const char *mahjong[]={ 5 "0", 6 "1T","2T","3T","4T","5T","6T","7T","8T","9T", 7 "1S","2S","3S","4S","5S","6S","7S","8S","9S", 8 "1W","2W","3W","4W","5W","6W","7W","8W","9W", 9 "DONG","NAN","XI","BEI", 10 "ZHONG","FA","BAI", 11 }; 12 13 int n; 14 int mj[15],c[35]; 15 16 int mjid(char str[]) 17 { 18 int i,j; 19 for(i=1;i<=34;i++) 20 { 21 if(strcmp(mahjong[i],str)==0) 22 { 23 return i; 24 } 25 } 26 } 27 28 int Search(int m) 29 { 30 int i,j; 31 for(i=1;i<=34;i++) 32 { 33 if(c[i]>=3) 34 { 35 if(m==4) return 1; 36 c[i]-=3; 37 if(Search(m+1)==1) return 1; 38 c[i]+=3; 39 } 40 } 41 for(i=1;i<=25;i++) 42 { 43 if(i%9<=7 && i%9!=0 && c[i]>=1 && c[i+1]>=1 && c[i+2]>=1) 44 { 45 if(m==4) return 1; 46 c[i]--,c[i+1]--,c[i+2]--; 47 if(Search(m+1)==1) return 1; 48 c[i]++,c[i+1]++,c[i+2]++; 49 } 50 } 51 return 0; 52 } 53 54 int hu() 55 { 56 int i,j; 57 for(i=1;i<=34;i++) 58 { 59 if(c[i]>=2) 60 { 61 c[i]-=2; 62 if(Search(1)==1) 63 return 1; 64 c[i]+=2; 65 } 66 } 67 return 0; 68 } 69 int main() 70 { 71 int i,j; 72 char str[10]; 73 int cas=1; 74 while(scanf("%s",str)!=EOF) 75 { 76 if(str[0]=='0') 77 break; 78 79 mj[1]=mjid(str); 80 for(i=2;i<=13;i++) 81 { 82 scanf("%s",str); 83 mj[i]=mjid(str); 84 } 85 86 printf("Case %d:",cas++); 87 88 bool flg=false; 89 for(i=1;i<=34;i++) 90 { 91 memset(c,0,sizeof(c)); 92 for(j=1;j<=13;j++) 93 c[mj[j]]++; 94 if(c[i]>=4) continue; 95 96 c[i]++; 97 if(hu()==1) 98 { 99 flg=true; 100 printf(" %s",mahjong[i]); 101 } 102 c[i]--; 103 } 104 105 if(!flg) 106 printf(" Not ready"); 107 printf("\n"); 108 } 109 return 0; 110 }
View Code
转载于:https://www.cnblogs.com/cyd308/p/5644788.html
UVA 11210 中国麻将相关推荐
- 麻将开金算法java代_中国麻将(Chinese Mahjong, UVa 11210)【JAVA算法实现】
题目描述麻将是一个中国原创的4人玩的游戏.这个游戏有很多变种,但本题只考虑一种有136张牌的玩法.这136张牌所包含的内容如下.饼(筒)牌:每张牌包括一系列 题目描述 麻将是一个中国原创的4人玩的游戏 ...
- UVA 11210 Chinese Mahjong
UVA_11210 一开始觉得这个题目比较麻烦便有点胆怯,后来鼓起勇气开始编之后,发现其实只要把每种情况考虑周全并且回溯得当的话还是不难的. 深搜中间之所以把eye设成全局变量并且放在return语句 ...
- [补档]从OI学麻将
背景 作为一名川娃子,怎么能不懂麻将呢= = T1 さきなに~~ [咲 -Saki-] 天才麻将少女什么编 题目 二十一世纪,世界上的麻将竞技人数超过一亿,日本每年也有大规模的全国大赛来对麻将选手进行 ...
- 雀友腾讯跨界联合 北京打造全球顶级麻将锦标赛
北京2018年7月30日电 /美通社/ -- 7月28-29日,雀友.腾讯强强联手举办的2018TMT腾讯麻将锦标赛国标夏季赛在首都北京举行,麻将锦标赛是由腾讯游戏与腾讯棋牌主办,腾讯欢乐麻将.麻将机 ...
- 我写了个“女朋友”陪自己打麻将……
序 一个月黑风高的晚上,我正坐在工位的电脑前精力充沛的疲倦不已的写着bug. 突然,一通备注着"小仙女"的电话打了过来,我一看赶紧接通了女朋友的电话. 电话那边传来温柔的声音&qu ...
- OI 刷题记录——每周更新
每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...
- 《算法竞赛入门经典——训练指南》第一章相关内容
#<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...
- 麻省、北大、清华等顶尖高校与企业 20 位强化学习专家齐聚,RLChina 2021 强化学习暑期课免费报名啦!
2016 年,AlphaGo 宛然横空出世,凭借精湛的棋艺接连战胜韩国围棋九段棋手李世石.中国围棋九段棋手柯洁之后,更是以 60 局无败绩的成绩轰动整个科技圈,人工智能的新纪元也因此开启.站在技术角度 ...
- 麻省、北大、清华等顶尖高校与企业 20 位强化学习专家齐聚,RLChina 2021 强化学习暑期课免费报名啦!...
2016 年,AlphaGo 宛然横空出世,凭借精湛的棋艺接连战胜韩国围棋九段棋手李世石.中国围棋九段棋手柯洁之后,更是以 60 局无败绩的成绩轰动整个科技圈,人工智能的新纪元也因此开启.站在技术角度 ...
最新文章
- jieba分词的使用
- Ado.net类与对象
- 解决Eclipse中文乱码的方法
- php rpc连接Python,PHP语言之Python、PHP通过xml-rpc进行通信,xml-rpc中文的解决
- Python+Opencv实现模板匹配
- PYTHON 爬虫笔记十一:Scrapy框架的基本使用
- 死亡搁浅运送系统服务器,死亡搁浅订单23寻物系统服务器流程介绍-死亡搁浅订单23寻物系统服务器怎么做_牛游戏网...
- visio防火墙可以连接什么_画流程图,就是要用Visio软件!
- win11网络怎么优化 Windows11优化网速的步骤教程
- 腾讯裁员内幕:顶层反思推动,PCG与CSIG影响最大
- sigmoid激活函数
- 原画学习步骤,零基础一步步学原画!
- 汇编程序求助,window.inc报错
- 计算机无法显示硬盘盘符,移动硬盘连接电脑不显示盘符怎么回事?移动硬盘连接电脑不显示盘符的原因和解决方法...
- JAVA打印十年母亲节,母亲节 一封推迟了十年的信
- 后端---史上最全最小白最简单最细致的Java接入微信支付接口(Native接入)
- _poto_和prototype的问题续集
- 分分钟解决OSPF配置问题
- 数据预处理--上采样(过采样)与下采样(降采样)
- LuaForWindows(SciTE) 5.1 常见问题