求调
查看原帖
求调
1243587
shiyilang0910楼主2024/12/7 08:31
#include<bits/stdc++.h>
using namespace std;
struct node{
	int tong;
	int bian;
}a[500];
int n;
int good[20];
string s[25];
bool cmp(node x,node y){
	if (x.tong!=y.tong){
		return x.tong>y.tong;
	}else{
		return x.bian<y.bian;
	}
}
int main(){
	cin>>n;
	for(int i=0;i<=15;i++){
		for(int j=0;j<=15;j++){
			a[i*26+j].bian=i*26+j;
		}
	}
	for(int i=1;i<=n;i++){
		cin>>s[i];
		for(int j=0;j<s[i].size();j+=2){
			int x,y;
			if (s[i][j]>='0'&&s[i][j]<='9'){
				x=s[i][j]-'0';
			}else{
				x=s[i][j]-'A'+10;
			}
			if (s[i][j+1]>='0'&&s[i][j+1]<='9'){
				y=s[i][j+1]-'0';
			}else{
				y=s[i][j+1]-'A'+10;
			}
			a[x*26+y].tong++;
		}
	}
	sort(a,a+1+405,cmp);
	int p=0;
	for(int i=0;i<=15;i++){
		int z=a[i].bian;
		good[++p]=z;
		int x=z/26;
		int y=z%26;
		if (x>=10){
			cout<<char(x-10+'A');
		}else{
			cout<<x;
		}
		if (y>=10){
			cout<<char(y-10+'A');
		}else{
			cout<<y;
		}
	}
	cout<<endl;
	for(int i=1;i<=n;i++){
		for(int j=0;j<s[i].size();j+=2){			
			int x,y;
			if (s[i][j]>='0'&&s[i][j]<='9'){
				x=s[i][j]-'0';
			}else{
				x=s[i][j]-'A'+10;
			}
			if (s[i][j+1]>='0'&&s[i][j+1]<='9'){
				y=s[i][j+1]-'0';
			}else{
				y=s[i][j+1]-'A'+10;
			}
			int z=x*26+y,deng=INT_MAX;
			cout<<z<<" ";
			bool f=false;
			for(int j=1;j<=16;j++){
				if (z==good[j]){
					if (j-1<10){
						cout<<j-1;
					}else{
						cout<<char((j-1-10)+'A');
					}
					cout<<endl;
					f=true;
					break;
				}
			}
			if (f){
				continue;
			}
			for(int j=1;j<=16;j++){
				deng=min(deng,abs(good[j]-z));
			}
			for(int j=1;j<=16;j++){
				if (abs(good[j]-z)==deng){
					if (j-1<10){
						cout<<j-1;
					}else{
						cout<<char((j-1-10)+'A');
					}
					cout<<endl;
					break;
				}
			}
		}
		cout<<endl;
	}
	return 0;
}
2024/12/7 08:31
加载中...