#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的更多相关文章

  1. Jquery暴力解数独

      var arry= new Array(); var nums= new Array(); var snum; function numchain() { snum=0; for(var i=0; ...

  2. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  3. 暴力解2018刑侦题python版

    # 1-->a 2-->b 3-->c 4-->d a[1]-->question1 a=[None]*11 #11是为了下标方便些,要不逻辑描述的时候容易出错 sum= ...

  4. HDU4930-Fighting the Landlords

    题意:斗地主,就是要自己出牌.使得对手在这一轮无法出牌,或者有出牌的可能.可是你的牌已经走完了.假设符合这些条件的话,输出Yes.否则输出No. 思路:先预处理能直接把牌走完的情况,假设不行的话就直接 ...

  5. 【BZOJ-4524】伪光滑数 堆 + 贪心 (暴力) [可持久化可并堆 + DP]

    4524: [Cqoi2016]伪光滑数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 183  Solved: 82[Submit][Status] ...

  6. 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 ...

  7. 使用python解数独

    偶然发现linux系统附带的一个数独游戏,打开玩了几把.无奈是个数独菜鸟,以前没玩过,根本就走不出几步就一团浆糊了. 于是就打算借助计算机的强大运算力来暴力解数独,还是很有乐趣的. 下面就记录一下我写 ...

  8. 平台之大势何人能挡? 带着你的Net飞奔吧!

    镇楼图: 跨平台系列: Linux基础 1.Linux基础学习 By dnt http://www.cnblogs.com/dunitian/p/4822807.html 环境配置 1.Hyper-v ...

  9. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

随机推荐

  1. catkin_package()是什么意思?

    DEPENDS 和 CATKIN_DEPENDS 用来告诉 catkin 需要将你程序包A的哪些依赖项传递给使用 find_package(...) 查找你的程序包的程序包B. 而在CMakeList ...

  2. 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    package algorithms; import java.util.ArrayList; import java.util.Stack; /** * public class ListNode ...

  3. JS中的let和var的区别

    最近很多前端的朋友去面试被问到let和var的区别,其实阮一峰老师的ES6中已经很详细介绍了let的用法和var的区别.我简单总结一下,以便各位以后面试中使用. ES6 新增了let命令,用来声明局部 ...

  4. 【转载】原 IntelliJ IDEA (idea)引入eclipse web项目

    原文地址:http://my.oschina.net/u/1170781/blog/192731 摘要 概述IntelliJ IDEA,以后都简称为idea,鼓捣了很久,看了很多例子才搞出来,希望对其 ...

  5. ltp-ddt qspi_mtd_dd_rw error can't read superblock on /dev/mtdblock0

    can't read superblock on /dev/mtdblock0 1.fsck /dev/xxx 2.e2fsck -b 8193 <device> e2fsck -b 32 ...

  6. flex 三列布局

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. java一维数组的声明、初始化及排序

    public class TestArray { public static void main(String[] args) { /** 数组声明及动态初始化 int a[] = new int[a ...

  8. linux基础常用语句--新手

    查询:ls查看全部内容:ls -n删除:rm -rf 文件名创建目录: mkdir解压:rpm -验证是否安装:rpm -p 文件名rpm -ivh --nodeps 不需要前置条件的安装查询当前路径 ...

  9. JAVA之文件操作1,2,3,4

    package first_program; import java.io.File; import java.io.IOException; public class num_1v { public ...

  10. vue子组件向父组件传递参数的基本方式

    子组件: this.$emit('transferUrl', this.picUrl) 父组件: 引入子组件<pics @transferUrl="gettransferUrl&quo ...