样例过了 全WA???
查看原帖
样例过了 全WA???
1183074
xzy_AK_IOI楼主2024/3/17 13:06
#include<bits/stdc++.h>
using namespace std;
string str[25];
struct zi{
	int bian;
	int duo;
}k[300];
char sd[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
bool pai(zi a,zi b)
{
	if (a.duo==b.duo)
	{
		return a.bian<b.bian;
	}
	else
	{
		return a.duo>b.duo;
	}
} 
int fan(string s)
{
	reverse(s.begin(),s.end());
	int sum=0;
	for (int i=0;i<=1;i++)
	{
		int k2;
		for (int j=0;j<=15;j++)
		{
			if (s[i]==sd[j])
			{
				k2=j;
				break;
			}
		}
		sum+=k2*pow(16,i);
	}
	return sum;
}
string _16(int g)
{
	string s="";
	for (int i=1;i<=2;i++)
	{
		if (g%16<10)
		{
			s+=char(g%16+'0');
		}
		else
		{
			s+=char(g%16+'A'-10);
		}
		g/=16;
	}
	reverse(s.begin(),s.end());
	return s;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin>>n;
	string s;
	getline(cin,s);
	for (int i=0;i<=270;i++)
	{
		k[i].bian=i;
	}
	for (int i=1;i<=n;i++)
	{
		getline(cin,s);
		str[i]=s;
		for (int j=0;j<=s.size()-1;j+=2)
		{
			int l=fan(s.substr(j,2));
			k[l].duo++;
		}
	} 
	/*for (int i=0;i<=255;i++)
	{
		cout<<_16(k[i].bian)<<" "<<k[i].duo<<'\n';
	}*/
	sort(k,k+256,pai);
	for (int i=0;i<=15;i++)
	{
		cout<<_16(k[i].bian);
	}
	cout<<'\n';
	for (int i=1;i<=n;i++)
	{
		s=str[i];
		for (int j=0;j<=s.size()-1;j+=2)
		{
			int min=1000,lp;
			for (int k23=0;k23<=15;k23++)
			{
				int h=abs(fan(s.substr(j,2))-k[k23].bian);
				if (h<min)
				{
					min=h;
					lp=k23;
				}
			}
			if (lp%16<10)
			{
				cout<<char(lp%16+'0');
			}
			else
			{
				cout<<char(lp%16+'A'-10);
			}
		}
		cout<<'\n';
	} 
	return 0; 
} 

这不科学!!!!!!!!!!!!!!!!

2024/3/17 13:06
加载中...