UVa11210 中国麻将 Chinese Mahjong-搜索
https://vjudge.net/problem/UVA-11210
//被水题虐了一上午...
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const char* mahjong[]={"GZH","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"};
],startMahjong[];//last mahjong
];
int ID(char* s){
;i<=;i++)
) return i;
;
}
bool dfs(int l){
) return true;
;i<=;i++){
){
c[i]-=;
)) return true;
c[i]+=;
}
}
;i<=;i++)
<=&&i%&&c[i]>=&&c[i+]>=&&c[i+]>=){
--c[i];--c[i+];--c[i+];
)) return true;
++c[i];++c[i+];++c[i+];
}
return false;
}
bool Judge(){
;i<=;i++){
){
c[i]-=;
)) return true;
c[i]+=;
}
}
return false;
}
int main()
{
;
){
]==;
printf("Case %d:",++caseCount);
startMahjong[]=ID(input);
;i<=;i++){
scanf("%s",input);startMahjong[i]=ID(input);
}
;
;i<=;i++){
memset(c,,sizeof(c));
;j<=;j++) c[startMahjong[j]]++;
) continue;
c[i]++;
if(Judge()){
ok=;
printf(" %s",mahjong[i]);
}
c[i]--;
}
if(!ok) printf(" Not ready");
printf("\n");
}
}
UVa11210 中国麻将 Chinese Mahjong-搜索的更多相关文章
- uva 11210 Chinese Mahjong(暴力搜索)
Chinese Mahjong Mahjong () is a game of Chinese origin usually played by four persons with tiles res ...
- UVa中国麻将(Chinese Mahjong,Uva 11210)
简单的回溯题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...
- 【题解】 UVa11210 Chinese Mahjong
pdf传送门 直接模拟+搜索,考虑一下选哪一个是将,然后搜出顺子和刻子,最后判断一下可不可行就好了! #include<stdio.h> #include<string.h> ...
- Chinese Mahjong
OJ题号:UVa11210 思路: 首先字符串处理读入手牌,str数组将手牌和数字对应,接下来搜索,先搜对子,如果搜过对子就不搜了.由于对子有且只有一个,可以在搜到以后直接跳出.同时注意一副麻将中每种 ...
- Chinese Mahjong UVA - 11210 (暴力+回溯递归)
思路:得到输入得到mj[]的各个牌的数量,还差最后一张牌.直接暴力枚举34张牌就可以了. 当假设得到最后一张牌,则得到了的牌看看是不是可以胡,如果可以胡的话,就假设正确.否者假设下一张牌. 关键还是如 ...
- Chinese Mahjong UVA - 11210 (DFS)
先记录下每一种麻将出现的次数,然后枚举每一种可能得到的麻将,对于这个新的麻将牌,去判断可不可能胡,如果可以胡,就可以把这张牌输出出来. 因为eye只能有一张,所以这个是最好枚举的,就枚举每张牌成为ey ...
- UVa 11210 Chinese Mahjong (暴力,递归寻找)
题意:这个题意.有点麻烦,就是说给定13张牌,让你求能“听”的牌.(具体的见原题) 原题链接: https://uva.onlinejudge.org/index.php?option=com_onl ...
- UVA 11210 中国麻将
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVa 11210 - Chinese Mahjong
解题报告:麻将的规则这里就不说了,这题我们可以用暴力的方法,所以我们应该这样枚举,即将34张牌的每一张牌都放到原来的十三张牌里面去,所以这时我们只要判断这十四张牌能不能胡,因为若要胡的话一定要有一个对 ...
随机推荐
- HDU3415
题目大意: 给出一个有N个数字(-1000..1000,N<=10^5)的环状序列,找出一个长度不大于k的连续子序列,使其和最大. 分析: 我们可以将环状序列从某处切开,变成一行,然后复制前n- ...
- 设置ulimit值(Linux文件句柄数量)永久生效
Linux 默认打开文件数linux 默认打开文件数为1024个,通过ulimit -a 可以查看open files修改这个限制可以使用ulimt -SHn 65536永久生效需要进行下面设置:1. ...
- Hadoop学习4--安装Hadoop
首先献上Hadoop下载地址: http://apache.fayea.com/hadoop/core/ 选择相应版本,点一下,直接进行http下载了. 对原来写的一篇文章,相当不满意,过于粗糙了,于 ...
- 单选按钮选中js的处理
function FinancialinfosetController($scope, $http, $timeout, $location, $rootScope, $routeParams) { ...
- BIP_开发案例01_BI Publisher报表手工提交和控制(案例)
2014-12-27 Created By BaoXinjian
- win764上vs2010+opencv2.4.11安装配置
1:准备工作 1)opencv的官网下载你所要版本的opencv库文件,运行安装解压到自定义的一个文件夹里(D:\Program Files). 2)安装vs2010. 二:配置 1.计算机环境变量: ...
- ubuntu网络配置相关知识(转载)
From:http://os.51cto.com/art/201003/188055.htm 文章主要介绍Ubuntu网络配置,希望能让Linux新手学习参考.更好使用Ubuntu.更有效的学习Ubu ...
- Windows 10 中 Eclipse中无法添加Courier New字体的解决方法!
1,打开"C:\Windows\Fonts\"文件夹. 2,鼠标右键"Courier New",随后点击"显示",这样你就可以在Eclips ...
- JS获取两个日期的月份差
function getMonthBetween(startDate,endDate){ startDate=new Date(startDate.replace(/-/g,'/')); endDat ...
- JavaScript判断字符串是否含有中文(实用)
引用页: http://javasam.iteye.com/blog/1465048 UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x ...