社区讨论
求修改,必关注。
B3851[GESP202306 四级] 图像压缩参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi7j8p7u
- 此快照首次捕获于
- 2025/11/20 22:34 4 个月前
- 此快照最后确认于
- 2025/11/21 11:51 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,p=0,xia=0;
bool s=0;
struct rt{
int a;
bool b;
};
rt qi_16[530];
int z[257],f[257],shu[17]={0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256};
string c[23];
void k(){
for(int i=0;i<n;i++){
for(int j=0;j<c[i].size();j++){
if(s==1){
if(c[i][j]>='0'&&c[i][j]<='9') p+=c[i][j]-48;
else p+=c[i][j]-55;
qi_16[xia].a=p;
// cout<<qi_16[xia].a<<" ";
s=0;xia++;p=0;
}
else{
if(c[i][j]>='0'&&c[i][j]<='9') p=c[i][j]*16-768;
else p=c[i][j]*16-880;
s=1;
}
}
//cout<<endl;
}
}
void ji(int a){
char p[2];
int v=0;
while(a>0){
if(a%16>9) p[v]=a%16+55;
else p[v]=a%16+48;
a=a/16;v++;
}
cout<<p[1]<<p[0];
}
bool fkv(int a,int b){
return a>b;
}
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>c[i];
k();
for(int i=0;i<xia;i++) z[qi_16[i].a]++;
for(int i=0;i<16;i++){
int x=0;
for(int j=0;j<256;j++){
if(z[j]>z[x]) x=j;
}
ji(x);
for(int j=0;j<xia;j++){
if(x==qi_16[j].a&&qi_16[j].b==0){
qi_16[j].a=i;
qi_16[j].b=1;
}
}
z[x]=-1;
}
cout<<endl;
for(int i=0;i<xia;i++){
if(qi_16[i].b==0){
for(int j=0;j<16;j++){
if(qi_16[i].a==shu[j]){
qi_16[i].a=j;
}
else if(qi_16[i].a>shu[j]&&qi_16[i].a<shu[j+1]){
if(shu[j+1]-qi_16[i].a>=qi_16[i].a-shu[j]) qi_16[i].a=j;
else qi_16[i].a=j+1;
}
}
}
//cout<<qi_16[i].a<<" ";
if(qi_16[i].a>9) cout<<char(65+qi_16[i].a-10);
else cout<<qi_16[i].a;
if((i+1)%(c[0].size()/2)==0) cout<<endl;
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...