模拟题,只是想纪念下,WA到死了…… 看到好多代码都好长,其实想说不用这么暴力。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <string>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <functional>
#include <time.h> using namespace std; const int INF = <<;
const int MAXN = ; char str[][MAXN];
int id[];
int cnt[][MAXN];
int MAX[][];
int tr[][]; bool check() {
int len[] = {strlen(str[]), strlen(str[])};
if (len[]==) return true;
memset(cnt, , sizeof(cnt));
memset(MAX, , sizeof(MAX));
memset(tr, , sizeof(tr)); for (int i = ; i < ; i++) //统计每张牌出现的数量
for (int j = ; j < len[i]; j++)
cnt[i][id[str[i][j]]]++; for (int k = ; k < ; k++) //找出最大的牌
for (int i = ; i > ; i--)
for (int j = ; j > ; j--)
if (cnt[k][j]>=i) {
MAX[k][i] = j;
break;
}
for (int k = ; k < ; k++) //3带1、2
for (int i = ; i < ; i++)
for (int j = ; j < ; j++)
if (MAX[k][]> && j!=MAX[k][] && cnt[k][j]>=i)
tr[k][i] = MAX[k][]; if (len[]< && MAX[][len[]]>) return true; //能出完
if (MAX[][]>&&len[]==) return true; //4带2
if ((len[]==&&tr[][]>)||(len[]==&&tr[][]>)) return true; //能出完+1
if (cnt[][]>&&cnt[][]>) return true; //有王炸
if (cnt[][]>&&cnt[][]>) return false; //对方有王炸
if (MAX[][]<MAX[][]) return false; //对方有炸弹 for (int i = ; i > ; i--)
if (MAX[][i]>=MAX[][i] && MAX[][i]>) //有大过对方的牌
return true; return false;
} int main() {
#ifdef Phantom01
freopen("HDU4930.txt", "r", stdin);
#endif //Phantom01 id[''] = ;
id[''] = ;
id[''] = ;
id[''] = ;
id[''] = ;
id[''] = ;
id[''] = ;
id['T'] = ;
id['J'] = ;
id['Q'] = ;
id['K'] = ;
id['A'] = ;
id[''] = ;
id['X'] = ;
id['Y'] = ; int T;
scanf("%d", &T);
gets(str[]); while (T--) {
gets(str[]);
gets(str[]);
if (check()) puts("Yes");
else puts("No");
} return ;
}

Hdu 4930 斗地主的更多相关文章

  1. hdu 4930 斗地主恶心模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4930 就是两个人玩斗地主,有8种牌型,单张,一对,三张,三带一,三带对,四带二,四炸,王炸.问先手能否一次出完牌 ...

  2. HDU 4930 Fighting the Landlords(暴力枚举+模拟)

    HDU 4930 Fighting the Landlords 题目链接 题意:就是题中那几种牌型.假设先手能一步走完.或者一步让后手无法管上,就赢 思路:先枚举出两个人全部可能的牌型的最大值.然后再 ...

  3. HDU 4930 Fighting the Landlords(模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4930 解题报告:斗地主,加了一个四张可以带两张不一样的牌,也可以带一对,判断打出一手牌之后,如果对手没 ...

  4. hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4930 Fighting the Landlords Time Limit: 2000/1000 MS ...

  5. 2014多校第六场 1010 || HDU 4930 Fighting the Landlords (模拟)

    题目链接 题意 : 玩斗地主,出一把,只要你这一把对方要不了或者你出这一把之后手里没牌了就算你赢. 思路 : 一开始看了第一段以为要出很多次,实际上只问了第一次你能不能赢或者能不能把牌出尽. #inc ...

  6. HDU 4930 Fighting the Landlords(扯淡模拟题)

    Fighting the Landlords 大意: 斗地主... . 分别给出两把手牌,肯定都合法.每张牌大小顺序是Y (i.e. colored Joker) > X (i.e. Black ...

  7. HDU 4930 Fighting the Landlords --多Trick,较复杂模拟

    题意:两个人A和B在打牌,只有题目给出的几种牌能出若A第一次出牌B压不住或者A一次就把牌出完了,那么A赢,输出Yes,否则若A牌没出完而且被B压住了,那么A输,输出No. 解法:知道规则,看清题目,搞 ...

  8. 2014 HDU多校弟六场J题 【模拟斗地主】

    这是一道5Y的题目 有坑的地方我已在代码中注释好了 QAQ Ps:模拟题还是练的太少了,速度不够快诶 //#pragma comment(linker, "/STACK:16777216&q ...

  9. HDU 1847 Good Luck in CET-4 Everybody!(规律,博弈)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

随机推荐

  1. 05:Cave Cows 1 洞穴里的牛之一

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 很少人知道其实奶牛非常喜欢到洞穴里面去探险.     洞窟里有N(1≤N≤100)个洞室,由 ...

  2. Uncaught TypeError: undefined is not a function

    index.html <script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data- ...

  3. Python 批量处理特定格式文件

    #批量对文件夹下的'.mat'进行处理 def file_name(file_dir,suff): L=[] for root, dirs, files in os.walk(file_dir): f ...

  4. django框架-Admin管理站点搭建

    在django框架中,admin基本上算是已经写好了的,拿过来进行简单的处理即可以使用的,相对于flask来说已经是相当的便捷了. 在使用中,步骤如下: 1.管理界面本地化:即将英文标题等的变成中文, ...

  5. 搭建ss总结

    今天晚上做的事情: 1. https://www.vultr.com/ 购买vps 2. ssh连接到服务器 参照网上帖子安装 https://blog.csdn.net/littlepig19930 ...

  6. NOIp模拟赛二十九

    又是受虐的一天呢~接下来四天都要打模拟赛QAQ 今日分数:0(100)+100+0=100 A题O(读入)结论题判断结果时没return 0被subtask卡成0分,喜提fstQAQ,B题DP,C题不 ...

  7. 图层Layers的介绍

    图层包含的要素可以是矢量形式的也可以是栅格形式的. 这里介绍其中一种:添加TileLayer.(加载Image类型的图层) 引用:"esri/layers/TileLayer" 举 ...

  8. python编写登录与注册

    #编写简单的注册与登陆模块 #使用死循环来检测 while True: #如果条件为真,则一直循环 sum=3 #定义密码输入的次数 username = input("请输入用户名:&qu ...

  9. django 用户上传文件media的存储访问配置1

    1. 首先新建文件夹media  后 在项目setting中具体配置: MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media ...

  10. Git 修改commit message

    1.git log --oneline -5 查看最近5次commit的简要信息,输出信息为:简短commitID commit_message,可以根据需要查看最近n次的提交 也可以git log ...