您的位置:首页 > 其它

POJ 2062 HDU 1528 ZOJ 2223 Card Game Cheater

2015-07-26 08:58 302 查看
水题,感觉和田忌赛马差不多

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

struct P1
{
int Num;
int Hua;
} Play1[30];

struct P2
{
int Num;
int Hua;
} Play2[30];

bool cmp1(const P1&a,const P1&b)
{
if(a.Num==b.Num) return a.Hua<b.Hua;
return a.Num<b.Num;
}
bool cmp2(const P2&a,const P2&b)
{
if(a.Num==b.Num) return a.Hua<b.Hua;
return a.Num<b.Num;
}

int main()
{
int n;
int i,j;
char s[5];
int TT;
scanf("%d",&TT);
while(TT--)
{
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%s",s);
int num,hua;
if(s[0]>='0'&&s[0]<='9') num=s[0]-'0';
if(s[0]=='T') num=10;
if(s[0]=='J') num=11;
if(s[0]=='Q') num=12;
if(s[0]=='K') num=13;
if(s[0]=='A') num=14;
Play1[i].Num=num;
if(s[1]=='C') hua=1;
if(s[1]=='D') hua=2;
if(s[1]=='S') hua=3;
if(s[1]=='H') hua=4;
Play1[i].Hua=hua;
}
sort(Play1,Play1+n,cmp1);
for(i=0; i<n; i++)
{
scanf("%s",s);
int num,hua;
if(s[0]>='0'&&s[0]<='9') num=s[0]-'0';
if(s[0]=='T') num=10;
if(s[0]=='J') num=11;
if(s[0]=='Q') num=12;
if(s[0]=='K') num=13;
if(s[0]=='A') num=14;
Play2[i].Num=num;
if(s[1]=='C') hua=1;
if(s[1]=='D') hua=2;
if(s[1]=='S') hua=3;
if(s[1]=='H') hua=4;
Play2[i].Hua=hua;
}
sort(Play2,Play2+n,cmp2);
int ans=0;
int P=0;
for(i=0; i<n; i++)
{
for(j=P; j<n; j++)
{
if((Play2[j].Num>Play1[i].Num)||(Play2[j].Num==Play1[i].Num&&Play2[j].Hua>Play1[i].Hua))
{
ans++;

P=j+1;break;
}
}
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: