样例过了,40分求助
查看原帖
样例过了,40分求助
1067578
CarlosShen楼主2024/3/2 20:00
//c++代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
short p[22][22],f[20];
struct st0{
	short num,x;
} cnt[257];
bool cmp(st0 a,st0 b){
	if(a.x==b.x)
		return a.num<b.num;
	return a.x>b.x;
}
int main(){
	cin>>n;
	for(int i=0;i<257;i++)
		cnt[i].num=i,cnt[i].x=0;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		m=s.size()/2;
		for(int j=0;j<s.size();j+=2){
			p[i][j/2+1]=(s[j]>='A'?s[j]-'A'+10:s[j]-'0')*16+(s[j+1]>='A'?s[j+1]-'A'+10:s[j+1]-'0');
			cnt[p[i][j/2+1]].x++;
		}
	}
	sort(cnt,cnt+256,cmp);
	for(int i=0;i<16;i++){
		f[i]=cnt[i].num;
		if(cnt[i].num<10)
			cout<<"0";
		printf("%X",cnt[i].num);
	}
	cout<<endl;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int t=0;
			for(int k=1;k<16;k++)
				if(abs(f[t]-p[i][j])>abs(f[k]-p[i][j]))
					t=k;
			printf("%X",t);
		}
		cout<<endl;
	}
	return 0;
}
2024/3/2 20:00
加载中...