main
黄海 1 year ago
parent 4a80e54782
commit e0ac9bb251

@ -54,9 +54,13 @@ struct Node {
return cnt > b.cnt;
}
};
vector<Node> vec;//需要把bucket组装成Node放到数组p中才能使用结构体排序吧
vector<Node> vec;//需要把b组装成Node放到数组p中才能使用结构体排序吧
int main() {
//将测试用例引入
freopen("D://HuiJie.txt", "r", stdin);
//freopen("D://test.txt", "w",stdout);
int n;
cin >> n;//有n行数据组成了图像
for (int i = 1; i <= n; i++) {
@ -81,24 +85,30 @@ int main() {
//使用自定义排序方法排序
sort(vec.begin(), vec.end());
//第一问
for (int i = 0; i < min(16, (int)vec.size()); i++)
cout << toHex(vec[i].id);
cout << endl;
//第二问
for (int i = 0; i < n; i++) { //枚举每个原始字符串每2个一组判断这个小串应该与尺子数组中的哪一个更接近
for (int j = 0; j < q[0].size(); j += 2) {
for (int j = 0; j < q[0].size(); j += 2) {//长度是一样长的
char c1 = q[i][j], c2 = q[i][j + 1];
//计算ab组装出的短串与上面vec中的前16个哪个距离最短
int x = toDec(c1, c2);
int mi = INT_MAX;
int mi_p = 0;
for (int k = 0; k < min(16, vec.size()); k++) { //16是有风险的因为可能没有16个那么多
if (mi > abs(vec[k] - x)) {
mi = abs(vec[k] - x);
for (int k = 0; k < min(16, (int)vec.size()); k++) { //16是有风险的因为可能没有16个那么多
if (mi > abs(vec[k].id - x)) {
mi = abs(vec[k].id - x);
mi_p = k;
}
}
//mi_p [0,255] -> 十六进制
//将当前的a,b这个值修改为mi_p这个灰阶值
cout << toHex(mi_p);
cout << toHex(mi_p)[1];
}
cout << endl;
}
return 0;
}

Loading…
Cancel
Save