暴力解hdu4930Fighting the Landlords
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[20],b[20],na,nb;
bool cmp(int aa,int bb)
{
return aa<bb;
}
void in()
{
int i;
char s1[20],s2[20];
scanf("%s%s",s1,s2);
na=strlen(s1);
nb=strlen(s2);
for(i=0;i<na;i++)
{
if(s1[i]=='T')
a[i]=8;
else if(s1[i]=='J')
a[i]=9;
else if(s1[i]=='Q')
a[i]=10;
else if(s1[i]=='K')
a[i]=11;
else if(s1[i]=='A')
a[i]=12;
else if(s1[i]=='2')
a[i]=13;
else if(s1[i]=='X')
a[i]=14;
else if(s1[i]=='Y')
a[i]=15;
else
a[i]=s1[i]-'0'-2;
}
for(i=0;i<nb;i++)
{
if(s2[i]=='T')
b[i]=8;
else if(s2[i]=='J')
b[i]=9;
else if(s2[i]=='Q')
b[i]=10;
else if(s2[i]=='K')
b[i]=11;
else if(s2[i]=='A')
b[i]=12;
else if(s2[i]=='2')
b[i]=13;
else if(s2[i]=='X')
b[i]=14;
else if(s2[i]=='Y')
b[i]=15;
else
b[i]=s2[i]-'0'-2;
}
sort(a,a+na,cmp);
sort(b,b+nb,cmp);
}
bool j0()//0
{
int i;
if(na>6)
return 0;
if(na==1||na==0)
return 1;
if(na==2)
{
if(a[0]==a[1]||(a[0]==14&&a[1]==15))
return 1;
}
else if(na==3)
{
if(a[0]==a[1]&&a[1]==a[2])
return 1;
}
else if(na==4)
{
if(a[0]==a[1]&&a[1]==a[2])
return 1;
if(a[1]==a[2]&&a[2]==a[3])
return 1;
}
else if(na==5)
{
if(a[0]==a[1]&&a[1]==a[2]&&a[3]==a[4])
return 1;
if(a[0]==a[1]&&a[2]==a[3]&&a[3]==a[4])
return 1;
}
else
{
if(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[3])
return 1;
if(a[1]==a[2]&&a[2]==a[3]&&a[3]==a[4])
return 1;
if(a[2]==a[3]&&a[3]==a[4]&&a[4]==a[5])
return 1;
}
return 0;
}
int j1()//zz
{
int i,j; if(a[na-1]==15&&a[na-2]==14)
return 1; if(nb>1)
{
if(b[nb-1]==15&&b[nb-2]==14)
return -1;
} for(i=na-1;i>2;i--)
if(a[i]==a[i-1]&&a[i-1]==a[i-2]&&a[i-2]==a[i-3])
break; for(j=nb-1;j>2;j--)
if(b[j]==b[j-1]&&b[j-1]==b[j-2]&&b[j-2]==b[j-3])
break; if(i>2&&j<3)
return 1; if(j>2&&i<3)
return -1; if(i>2&&j>2)
{
if(a[i]>b[j])
return 1;
if(a[i]<b[j])
return -1;
} return 0;
}
bool j2()//1
{
return a[na-1]>=b[nb-1];
}
bool j3()//2
{
int i,j;
for(i=na-1;i>0;i--)
if(a[i]==a[i-1])
break;
if(i==0)
return 0; if(nb<2)
return 1;
for(j=nb-1;j>0;j--)
if(b[j]==b[j-1])
break;
if(j==0)
return 1; return a[i]>=b[j];
}
bool j4()//3
{
int i,j,ii,jj;
if(na<3)
return 0; for(i=na-1;i>1;i--)
if(a[i]==a[i-1]&&a[i-1]==a[i-2])
break; if(i==1)
return 0; for(j=nb-1;j>1;j--)
if(b[j]==b[j-1]&&b[j-1]==b[j-2])
break; if(j==1)
return 1; if(a[i]>b[j])
return 1; if(na>3&&nb==3)
return 1; for(ii=na-1;ii>0;ii--)
{
if(a[ii]==a[i])
continue;
if(a[ii]==a[ii-1])
break;
} if(ii==0)
return 0; for(jj=nb-1;jj>0;jj--)
{
if(b[jj]==b[j])
continue;
if(b[jj]==b[jj-1])
break;
} if(jj==0)
return 1; return 0;
}
int main()
{
int exp,t;
scanf("%d",&exp);
while(exp--)
{
in();
if(na==0)
{
puts("Yes");
continue;
}
else if(nb==0)
{
puts("No");
continue;
}
if(j0())
puts("Yes");
else
{
t=j1();
if(t==1)
puts("Yes");
else if(t==-1)
puts("No");
else
{
if(j2()||j3()||j4())
puts("Yes");
else
puts("No");
}
}
}
}
暴力解hdu4930Fighting the Landlords的更多相关文章
- Jquery暴力解数独
var arry= new Array(); var nums= new Array(); var snum; function numchain() { snum=0; for(var i=0; ...
- 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- 暴力解2018刑侦题python版
# 1-->a 2-->b 3-->c 4-->d a[1]-->question1 a=[None]*11 #11是为了下标方便些,要不逻辑描述的时候容易出错 sum= ...
- HDU4930-Fighting the Landlords
题意:斗地主,就是要自己出牌.使得对手在这一轮无法出牌,或者有出牌的可能.可是你的牌已经走完了.假设符合这些条件的话,输出Yes.否则输出No. 思路:先预处理能直接把牌走完的情况,假设不行的话就直接 ...
- 【BZOJ-4524】伪光滑数 堆 + 贪心 (暴力) [可持久化可并堆 + DP]
4524: [Cqoi2016]伪光滑数 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 183 Solved: 82[Submit][Status] ...
- Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort(暴力)
传送门 Description You are given a table consisting of n rows and m columns. Numbers in each row form a ...
- 使用python解数独
偶然发现linux系统附带的一个数独游戏,打开玩了几把.无奈是个数独菜鸟,以前没玩过,根本就走不出几步就一团浆糊了. 于是就打算借助计算机的强大运算力来暴力解数独,还是很有乐趣的. 下面就记录一下我写 ...
- 平台之大势何人能挡? 带着你的Net飞奔吧!
镇楼图: 跨平台系列: Linux基础 1.Linux基础学习 By dnt http://www.cnblogs.com/dunitian/p/4822807.html 环境配置 1.Hyper-v ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
随机推荐
- 系统资源监控--windows
前言: 系统资源监控一般监控系统的CPU,内存,磁盘和网络.系统分为windows和Linux.本篇主要记录windows. Windows的监控相对与Linux监控工具来说比较简单,更多的是查看wi ...
- Shell script之How to write
Write shell script: 1) Editor like vi or mcedi 2) Set execute permission for your script chmod perm ...
- 云服务IaaS,PaaS,SaaS
IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service SaaS:软件服务,Software-as-a-serv ...
- CAD保存文件为各种格式
<p class="mtext"> 主要用到函数说明:</p><p style="line-height: 0.6;"> & ...
- 06C语言运算符
C语言运算符 算术运算符 运算符 描述 + 把两个操作数相加 - 从第一个操作数中减去第二个操作数 * 把两个操作数相乘 / 分子除以分母 % 取模运算符,整除后的余数 ++ 自增运算符,整数值增加 ...
- nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持
Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称 IP ...
- angular5中的自定义指令(属性指令)
属性型指令用于改变一个 DOM 元素的外观或行为. 在 Angular 中有三种类型的指令: 组件 — 拥有模板的指令 结构型指令 — 通过添加和移除 DOM 元素改变 DOM 布局的指令 属性型指令 ...
- 字符串系列——KMP模板整理
KMP模板整理 KMP与扩展KMP: /*vs 2017/ vs code以外编译器,去掉windows.h头文件和system("pause");*/ #include<i ...
- 折线分割平面(hdoj 2050,动态规划递推)
Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面 ...
- ROS lesson 1
ROS ROS官网 ROS 简介 ROS 是 Robot Operation System 的简写,并且 他诞生在2000年后,至今有10余年了,运行在 Linux(Ubuntu) 上 ROS 不是 ...