简单的回溯题

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; 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 convert(char *s)//映射处理
{
for(int i=;i<;i++)
if(strcmp(mahjong[i],s)==)
return i;
return -;
} int c[]; bool search(int dep)
{
for(int i=;i<;i++)//枚举刻子
if(c[i]>=)
{
if(dep==) return true;
c[i]-=;
if(search(dep+)) return true;
c[i]+=;
}
for(int i=;i<;i++)//枚举顺子
if(i%<=&&c[i]>=&&c[i+]>=&&c[i+]>=)
{
if(dep==) return true;
c[i]--;c[i+]--;c[i+]--;
if(search(dep+)) return true;
c[i]++;c[i+]++;c[i+]++;
}
return false;
} bool check()
{
for(int i=;i<;i++)//枚举将牌
if(c[i]>=)
{
c[i]-=;
if(search()) return true;
c[i]+=;
}
return false;
} int main()
{
int casen=;
int mj[];
char s[];
bool ok;
while(cin>>s)
{
if(s[]=='') break;
printf("Case %d:",++casen);
mj[]=convert(s);
for(int i=;i<;i++)
{
cin>>s;
mj[i]=convert(s);
}
ok=false;
for(int i=;i<;i++)//枚举听牌
{
memset(c,,sizeof(c));
for(int j=;j<;j++) c[mj[j]]++;
if(c[i]>=) continue;
c[i]++;
if(check())
{
ok=true;
printf(" %s",mahjong[i]);
}
c[i]--;
}
if(!ok)
printf(" Not ready");
printf("\n");
}
return ;
}

最新文章

  1. Java图形化界面设计——布局管理器之FlowLayout(流式布局)
  2. Java byte数据类型详解
  3. 【数据结构】 字符串&amp;KMP子串匹配算法
  4. storm消费kafka实现实时计算
  5. ASP.NET Core - 从Program和Startup开始
  6. [LeetCode] Binary Tree Pruning 二叉树修剪
  7. dis集群研究和实践(基于redis 3.0.5) 《转载》
  8. springboot 创建非web项目及数据源简单使用
  9. console 命令进行 JS 调试的灵活用法
  10. EasyUI-datebox设置开始日期小于结束日期,并且结束日期小于当前日期
  11. ASP.NET Core使用TopShelf部署Windows服务
  12. python测试webservice接口
  13. zcat,zgrep用法
  14. UILabel部分文字可点击
  15. django~项目的文件位置的重要性
  16. 春夏秋冬又一春之Redis持久化
  17. React Native(四)——顶部以及底部导航栏实现方式
  18. MySQL在windows下的图形安装
  19. 关于卫星RNSS与RDSS
  20. 西邮Linux兴趣小组纳新笔试试题

热门文章

  1. jemeter、windox下安装教程
  2. Supervised learning demo
  3. MVC之ViewData.Model
  4. window.open方法解析
  5. Hibernate课程 初探一对多映射4-3 测试--信息查询
  6. IDEA中使用spring官方模板+@Controller
  7. jquery 根据日期计算年龄
  8. Miner3D 数据分析软件
  9. Design Pattern -&gt;Abstract Factory
  10. Python开发环境Wing IDE如何检查Python集成