直接枚举
2025-05-13 21:32:15
发布于:北京
26阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
void man()
{
int l1,l2;
cin>>l1>>l2;
int a1=0,a2=0,b1=0,b2=0,c1=0,c2=0,d1=0,d2=0;
int ans[5]={0,0,0,0,0};//答案数组
string s1,s2;
cin>>s1;
cin>>s2;
for(int i=0;i<l1;i++)
{
if(s1[i]=='a')a1=1;
if(s1[i]=='b')b1=1;
if(s1[i]=='c')c1=1;
if(s1[i]=='d')d1=1;
}//统计自己每样花色是否有手牌
for(int i=0;i<l2;i++)
{
if(s2[i]=='a')a2=1;
if(s2[i]=='b')b2=1;
if(s2[i]=='c')c2=1;
if(s2[i]=='d')d2=1;
}//统计对手每样花色是否有手牌
if(a2&&b2&&c2&&d2)ans[1]=1;//弃掉对手4张牌
if(a1&&b1&&c1&&d1)ans[4]=1;//弃掉自己4张牌
if(a1&&b1&&c1&&d2)ans[3]=1;//弃掉自己3张牌和对手1张牌
if(a1&&b1&&d1&&c2)ans[3]=1;
if(a1&&c1&&d1&&b2)ans[3]=1;
if(b1&&c1&&d1&&a2)ans[3]=1;
if(a2&&b2&&c2&&d1)ans[2]=1;//弃掉自己1张牌和对手3张牌
if(a2&&b2&&d2&&c1)ans[2]=1;
if(a2&&c2&&d2&&b1)ans[2]=1;
if(b2&&c2&&d2&&a1)ans[2]=1;
for(int i=1;i<=4;i++)
{
cout<<ans[i];//输出答案数组
}
cout<<endl;
}
int main()
{
int t;
cin>>t;
while(t--)
{
man();
}
}
这里空空如也
有帮助,赞一个