请求题解,不通过自删
查看原帖
请求题解,不通过自删
1283847
March7thDev楼主2024/10/27 06:51

@chen_zhe 大家好,这里是March7thDev,一个刚从赛场里出来的蒟蒻()


P11227赛场解法

#include <bits/stdc++.h>
using namespace std;
bool  jdD[15]={0};
bool jdC[15]={0};
bool jdH[15]={0};
bool jdS[15]={0};
	long long ans=0;
int main()
{
	int n;
	cin >> n;
	if (n == 1)
	{
		cout << 51 << endl;
		return 0;
	}
	for (int i = 1; i <= n; i++)
	{
		char n;
		char num;
		cin>>n>>num;
		if (n == 'D')
		{
			if (num == 'A')
			{
				jdD[1]=1;
			}
			if (num == '2')
			{
				jdD[2]=1;
			}
			if (num == '3')
			{
				jdD[3]=1;
			}
			if (num == '4')
			{
				jdD[4]=1;
			}
			if (num == '5')
			{
				jdD[5]=1;
			}
			if (num == 6)
			{
				jdD[6]=1;
			}
			if (num == 7)
			{
				jdD[7]=1;
			}
			if (num == 8)
			{
				jdD[8]=1;
			}
			if (num == 9)
			{
				jdD[9]=1;
			}
			if (num == 'T')
			{
				jdD[10]=1;
			}
			if (num == 'J')
			{
				jdD[11]=1;
			}
			if (num == 'Q')
			{
				jdD[12]=1;
			}
			if (num == 'K')
			{
				jdD[13]=1;
			}
		}
	if (n == 'C')
		{
			if (num == 'A')
			{
				jdC[1]=1;
			}
			if (num == 2)
			{
				jdC[2]=1;
			}
			if (num == 3)
			{
				jdC[3]=1;
			}
			if (num == 4)
			{
				jdC[4]=1;
			}
			if (num == 5)
			{
				jdC[5]=1;
			}
			if (num == 6)
			{
				jdC[6]=1;
			}
			if (num == 7)
			{
				jdC[7]=1;
			}
			if (num == 8)
			{
				jdC[8]=1;
			}
			if (num == 9)
			{
				jdC[9]=1;
			}
			if (num == 'T')
			{
				jdC[10]=1;
			}
			if (num == 'J')
			{
				jdC[11]=1;
			}
			if (num == 'Q')
			{
				jdC[12]=1;
			}
			if (num == 'K')
			{
				jdC[13]=1;
			}
		}
		if (n == 'H')
		{
			if (num == 'A')
			{
				jdH[1]=1;
			}
			if (num == 2)
			{
				jdH[2]=1;
			}
			if (num == 3)
			{
				jdH[3]=1;
			}
			if (num == 4)
			{
				jdH[4]=1;
			}
			if (num == 5)
			{
				jdH[5]=1;
			}
			if (num == 6)
			{
				jdH[6]=1;
			}
			if (num == 7)
			{
				jdH[7]=1;
			}
			if (num == 8)
			{
				jdH[8]=1;
			}
			if (num == 9)
			{
				jdH[9]=1;
			}
			if (num == 'T')
			{
				jdH[10]=1;
			}
			if (num == 'J')
			{
				jdH[11]=1;
			}
			if (num == 'Q')
			{
				jdH[12]=1;
			}
			if (num == 'K')
			{
				jdH[13]=1;
			}
		}
		if (n == 'S')
		{
			if (num == 'A')
			{
				jdS[1]=1;
			}
			if (num == 2)
			{
				jdS[2]=1;
			}
			if (num == 3)
			{
				jdS[3]=1;
			}
			if (num == 4)
			{
				jdS[4]=1;
			}
			if (num == 5)
			{
				jdS[5]=1;
			}
			if (num == 6)
			{
				jdS[6]=1;
			}
			if (num == 7)
			{
				jdS[7]=1;
			}
			if (num == 8)
			{
				jdS[8]=1;
			}
			if (num == 9)
			{
				jdS[9]=1;
			}
			if (num == 'T')
			{
				jdS[10]=1;
			}
			if (num == 'J')
			{
				jdS[11]=1;
			}
			if (num == 'Q')
			{
				jdS[12]=1;
			}
			if (num == 'K')
			{
				jdS[13]=1;
			}
		}
	}
	for(int i=1;i<=13;i++)
	{
		if(jdD[i]==false)
		ans++;
		if(jdC[i]==false)
		ans++;
		if(jdH[i]==false)
		ans++;
		if(jdS[i]==false)
		ans++;
	}
	cout<<ans<<endl;
	return 0;
}

这份代码浅显易懂,本蒟蒻为了避免出现问题没有使用高级数据结构,接下来是注释版本的程序,请大家不要抄袭

#include <bits/stdc++.h>
using namespace std;
//四种花色
bool  jdD[15]={0};
bool jdC[15]={0};
bool jdH[15]={0};
bool jdS[15]={0};
//记录答案
long long ans=0;
int main()
{
	int n;
	cin >> n;
	//特判
	if (n == 1)
	{
		cout << 51 << endl;
		return 0;
	}
	for (int i = 1; i <= n; i++)
	{
		char n;//花色
		char num;//牌号
		cin>>n>>num;
		//分类讨论(大雾)
		if (n == 'D')
		{
			if (num == 'A')
			{
				jdD[1]=1;
			}
			if (num == '2')
			{
				jdD[2]=1;
			}
			if (num == '3')
			{
				jdD[3]=1;
			}
			if (num == '4')
			{
				jdD[4]=1;
			}
			if (num == '5')
			{
				jdD[5]=1;
			}
			if (num == 6)
			{
				jdD[6]=1;
			}
			if (num == 7)
			{
				jdD[7]=1;
			}
			if (num == 8)
			{
				jdD[8]=1;
			}
			if (num == 9)
			{
				jdD[9]=1;
			}
			if (num == 'T')
			{
				jdD[10]=1;
			}
			if (num == 'J')
			{
				jdD[11]=1;
			}
			if (num == 'Q')
			{
				jdD[12]=1;
			}
			if (num == 'K')
			{
				jdD[13]=1;
			}
		}
	if (n == 'C')
		{
			if (num == 'A')
			{
				jdC[1]=1;
			}
			if (num == 2)
			{
				jdC[2]=1;
			}
			if (num == 3)
			{
				jdC[3]=1;
			}
			if (num == 4)
			{
				jdC[4]=1;
			}
			if (num == 5)
			{
				jdC[5]=1;
			}
			if (num == 6)
			{
				jdC[6]=1;
			}
			if (num == 7)
			{
				jdC[7]=1;
			}
			if (num == 8)
			{
				jdC[8]=1;
			}
			if (num == 9)
			{
				jdC[9]=1;
			}
			if (num == 'T')
			{
				jdC[10]=1;
			}
			if (num == 'J')
			{
				jdC[11]=1;
			}
			if (num == 'Q')
			{
				jdC[12]=1;
			}
			if (num == 'K')
			{
				jdC[13]=1;
			}
		}
		if (n == 'H')
		{
			if (num == 'A')
			{
				jdH[1]=1;
			}
			if (num == 2)
			{
				jdH[2]=1;
			}
			if (num == 3)
			{
				jdH[3]=1;
			}
			if (num == 4)
			{
				jdH[4]=1;
			}
			if (num == 5)
			{
				jdH[5]=1;
			}
			if (num == 6)
			{
				jdH[6]=1;
			}
			if (num == 7)
			{
				jdH[7]=1;
			}
			if (num == 8)
			{
				jdH[8]=1;
			}
			if (num == 9)
			{
				jdH[9]=1;
			}
			if (num == 'T')
			{
				jdH[10]=1;
			}
			if (num == 'J')
			{
				jdH[11]=1;
			}
			if (num == 'Q')
			{
				jdH[12]=1;
			}
			if (num == 'K')
			{
				jdH[13]=1;
			}
		}
		if (n == 'S')
		{
			if (num == 'A')
			{
				jdS[1]=1;
			}
			if (num == 2)
			{
				jdS[2]=1;
			}
			if (num == 3)
			{
				jdS[3]=1;
			}
			if (num == 4)
			{
				jdS[4]=1;
			}
			if (num == 5)
			{
				jdS[5]=1;
			}
			if (num == 6)
			{
				jdS[6]=1;
			}
			if (num == 7)
			{
				jdS[7]=1;
			}
			if (num == 8)
			{
				jdS[8]=1;
			}
			if (num == 9)
			{
				jdS[9]=1;
			}
			if (num == 'T')
			{
				jdS[10]=1;
			}
			if (num == 'J')
			{
				jdS[11]=1;
			}
			if (num == 'Q')
			{
				jdS[12]=1;
			}
			if (num == 'K')
			{
				jdS[13]=1;
			}
		}
	}
	//去重计算(大雾)
	for(int i=1;i<=13;i++)
	{
		if(jdD[i]==false)
		ans++;
		if(jdC[i]==false)
		ans++;
		if(jdH[i]==false)
		ans++;
		if(jdS[i]==false)
		ans++;
	}
	//完美结束,感谢CCF
	cout<<ans<<endl;
	return 0;
}
2024/10/27 06:51
加载中...