'commit'
This commit is contained in:
1
GESP/资料/灰阶图像/1.txt
Normal file
1
GESP/资料/灰阶图像/1.txt
Normal file
@@ -0,0 +1 @@
|
||||
AAAA6AAAA6
|
||||
48
GESP/资料/灰阶图像/十六进制转换测试.cpp
Normal file
48
GESP/资料/灰阶图像/十六进制转换测试.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= '0' && a <= '9')
|
||||
res += (a - '0') * 16;
|
||||
else if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
|
||||
if (b >= '0' && b <= '9')
|
||||
res += b - '0';
|
||||
else if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
return res;
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
char c1, c2;
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = '0' + a;
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = '0' + b;
|
||||
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
|
||||
int main() {
|
||||
cout << toDec('A', 'B') << endl;// AB-->? 10*16+ 11 =171
|
||||
cout << toDec('1', '3') << endl;// 19
|
||||
cout << toDec('1', 'A') << endl;// 26
|
||||
|
||||
cout << toHex(171) << endl; //AB
|
||||
cout << toHex(19) << endl; //13
|
||||
cout << toHex(26) << endl; //1A
|
||||
return 0;
|
||||
}
|
||||
50
GESP/资料/灰阶图像/十进制与十六进制互转.cpp
Normal file
50
GESP/资料/灰阶图像/十进制与十六进制互转.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
else
|
||||
res += (a - '0') * 16;
|
||||
|
||||
if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
else
|
||||
res += b - '0';
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
char c1;
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = '0' + a;
|
||||
char c2;
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = '0' + b;
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
|
||||
int main() {
|
||||
cout << toDec('A', 'B') << endl; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>171<37><31><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>10*16+11=171
|
||||
cout << toDec('1', '2') << endl; //18
|
||||
cout << toDec('0', '2') << endl; //2
|
||||
|
||||
cout << toHex(171) << endl;
|
||||
cout << toHex(18) << endl;
|
||||
cout << toHex(2) << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
114
GESP/资料/灰阶图像/新文件1.cpp
Normal file
114
GESP/资料/灰阶图像/新文件1.cpp
Normal file
@@ -0,0 +1,114 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 256;
|
||||
int b[N];
|
||||
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= 'A' && a <= 'F')
|
||||
res += (a + 10 - 'A') * 16;
|
||||
else
|
||||
res += (a - '0') * 16;
|
||||
if (b >= 'A' && b <= 'F')
|
||||
res += b + 10 - 'A';
|
||||
else
|
||||
res += b - '0';
|
||||
return res;
|
||||
}
|
||||
|
||||
string toHex(int x) {
|
||||
int a = x % 16;
|
||||
int b = x / 16;
|
||||
char c1, c2;
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = a + '0';
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = b + '0';
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
vector<string>q;
|
||||
|
||||
//struct Node {
|
||||
// int id;
|
||||
// int cnt;
|
||||
// const bool operator<(const Node &b)const {
|
||||
// if (cnt == b.cnt)
|
||||
// return id < b.id;
|
||||
// return cnt > b.cnt;
|
||||
// }
|
||||
//};
|
||||
//Node<64>ٵ<EFBFBD><D9B5>ˣ<EFBFBD><CBA3>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
||||
vector<int>vec;
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
cin >> n;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
cin >> s;
|
||||
q.push_back(s);
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char c1, c2;
|
||||
c1 = s[j], c2 = s[j + 1];
|
||||
int k = toDec(c1, c2);
|
||||
b[k]++;
|
||||
}
|
||||
}
|
||||
// ѡ<>ٿ<EFBFBD>ʼ~~~
|
||||
// <20><><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻܶ<C7BA><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>256<35><36>Ҳ<EFBFBD><D2B2><EFBFBD>ܸ<EFBFBD><DCB8>٣<EFBFBD><D9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>֣<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ҫѡ<D2AA><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16<31><36><EFBFBD><EFBFBD><EFBFBD>壡
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vec<node><3E><>
|
||||
// vec<node><3E><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>for<6F><72>1<EFBFBD><31>mx<6D><78><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mx<6D><78><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>mx_id<69><64><EFBFBD><EFBFBD>ֵ<EFBFBD>ı<EFBFBD><C4B1>ţ<EFBFBD>
|
||||
//<2F><>һ<EFBFBD><D2BB>vec<int>!
|
||||
//<2F><>ʼ<EFBFBD>ɣ<EFBFBD>
|
||||
// for (int i = 0; i <= 255; i++)
|
||||
// if (b[i])
|
||||
// vec.push_back({i, b[i]});
|
||||
//Ϊ<>˷<EFBFBD>ֹ<EFBFBD><D6B9>ɫ<EFBFBD><C9AB>ð<EFBFBD>䣬<EFBFBD><E4A3AC>ɸһ<C9B8>飬Ȼ<E9A3AC><C8BB>¼<EFBFBD><C2BC>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// sort(vec.begin(), vec.end());
|
||||
//<2F>ɴ<EFBFBD><C9B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰʮ<C7B0><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (int i = 0; i < 16; i++) {
|
||||
int mx, mx_id;
|
||||
mx = 0, mx_id = -1;
|
||||
for (int j = 0; j < 256; j++)
|
||||
if (b[j] > mx) {
|
||||
mx = b[j];
|
||||
mx_id = j;
|
||||
}
|
||||
vec.push_back(mx_id);
|
||||
//important!!!
|
||||
b[mx_id] = -1;
|
||||
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>~<7E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
for (int i = 1; i <= 16; i++)
|
||||
cout << toHex(vec[i]);
|
||||
cout << endl;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>~
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < q[0].size(); j += 2) {
|
||||
char c1, c2;
|
||||
c1 = q[i][j], c2 = q[i][j + 1];
|
||||
int x = toDec(c1, c2);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < 16; k++) {
|
||||
if (mi > abs(vec[k] - x)) {
|
||||
mi = abs(vec[k] - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
cout << toHex(mi_p)[1];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
87
GESP/资料/灰阶图像/无noid版本1.cpp
Normal file
87
GESP/资料/灰阶图像/无noid版本1.cpp
Normal file
@@ -0,0 +1,87 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 256;
|
||||
int b[N];
|
||||
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
else
|
||||
res += (a - '0') * 16;
|
||||
if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
else
|
||||
res += b - '0' ;
|
||||
return res;
|
||||
}
|
||||
|
||||
string toHex(int x) {
|
||||
int a = x % 16;
|
||||
int b = x / 16;
|
||||
char c1, c2;
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = a + '0';
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = b + '0';
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
vector<string>q;
|
||||
|
||||
vector<int>vec;
|
||||
|
||||
int main() {
|
||||
|
||||
int n;
|
||||
cin >> n;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
cin >> s;
|
||||
q.push_back(s);
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char c1 = s[j], c2 = s[j + 1];
|
||||
int k = toDec(c1, c2);
|
||||
b[k]++;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 16; i++) {
|
||||
int mx = 0, mx_id = -1;
|
||||
for (int j = 0; j < 256; j++)
|
||||
if (b[j] > mx) {
|
||||
mx = b[j];
|
||||
mx_id = j;
|
||||
}
|
||||
vec.push_back(mx_id);
|
||||
|
||||
b[mx_id] = -1;
|
||||
}
|
||||
for (int i = 0; i < min(16, (int)vec.size()); i++)
|
||||
cout << toHex(vec[i]) ;
|
||||
cout << endl;
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < q[0].size(); j += 2) {
|
||||
int c1 = q[i][j], c2 = q[i][j + 1];
|
||||
int x = toDec(c1, c2);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < min(16, (int)vec.size()); k++) {
|
||||
if (mi > abs(vec[k] - x)) {
|
||||
mi = abs(vec[k] - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
cout << toHex(mi_p)[1];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
91
GESP/资料/灰阶图像/灰阶图像 - 第一个版本.cpp
Normal file
91
GESP/资料/灰阶图像/灰阶图像 - 第一个版本.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 256;
|
||||
//Ͱ
|
||||
int bucket[N];//0 ~ 255
|
||||
|
||||
//ԭʼ<D4AD><CABC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
string q[30];
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int get(char a, char b) {
|
||||
return (a - '0') * 16 + (b - '0');
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
string res;
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
if (a >= 10)
|
||||
res = 'A' + a - 10;
|
||||
else
|
||||
res = '0' + a;
|
||||
if (b >= 10)
|
||||
res = res + 'A' + b - 10;
|
||||
else
|
||||
res = res + '0' + b;
|
||||
}
|
||||
|
||||
//<2F>ṹ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>еĻҽװ<D2BD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||
struct Node {
|
||||
int id;//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
int cnt;//<2F><><EFBFBD><EFBFBD>
|
||||
const bool operator<(const Node &b) const {
|
||||
if (cnt == b.cnt)
|
||||
return id < b.id;
|
||||
return cnt > b.cnt;
|
||||
}
|
||||
};
|
||||
vector<Node> vec;//<2F><>Ҫ<EFBFBD><D2AA>bucket<65><74>װ<EFBFBD><D7B0>Node<64>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
cin >> n;//<2F><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
q[i] = s;//<2F><><EFBFBD><EFBFBD>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cin >> s;
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char a = s[j], b = s[j + 1];
|
||||
//<2F><><EFBFBD><EFBFBD>a='A' b='B' AB
|
||||
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> AB<41><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>ٸ<EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+Ͱ<><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>Ǹ<EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD>һ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB> AB FF
|
||||
int k = get(a, b); //<2F>ҽ<D2BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
bucket[k]++;
|
||||
}
|
||||
}
|
||||
//<2F>ҳ<EFBFBD>ǰ16λʹ<CEBB><CAB9>Ƶ<EFBFBD>ʸߵĻҽ<C4BB>
|
||||
//<2F><><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
||||
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
||||
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?Ͱ<><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ǰ
|
||||
for (int i = 0; i <= 255; i++) {
|
||||
vec.push_back({i, bucket[i]});
|
||||
}
|
||||
sort(vec.begin(), vec.end());
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ѿ<EFBFBD><D1BE>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>vector<Node>
|
||||
//vec[0]~vec[15]; vec[0].id vec[0].cnt
|
||||
//toHex(vec[0].id)
|
||||
// AA BB CC DD
|
||||
|
||||
for (int i = 1; i <= n; i++) { //ö<><C3B6>ÿ<EFBFBD><C3BF>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ÿ2<C3BF><32>һ<EFBFBD>飬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
||||
for (int j = 0; j < q[0].size(); j += 2) {
|
||||
char a = q[j], b = q[j + 1]; //0 F ,0 F
|
||||
//<2F><><EFBFBD><EFBFBD>ab<61><62>װ<EFBFBD><D7B0><EFBFBD>Ķ̴<C4B6><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vec<65>е<EFBFBD>ǰ16<31><36><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int x = get(a, b);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < min(16, vec.size()); k++) { //16<31><36><EFBFBD>з<EFBFBD><D0B7>յģ<D5B5><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>û<EFBFBD><C3BB>16<31><36><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>
|
||||
if (mi > abs(vec[k] - x)) {
|
||||
mi = abs(vec[k] - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
//mi_p [0,255] -> ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>a,b<><62><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>Ϊmi_p<5F><70><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD>ֵ
|
||||
cout << toHex(mi_p);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
121
GESP/资料/灰阶图像/灰阶图像.cpp
Normal file
121
GESP/资料/灰阶图像/灰阶图像.cpp
Normal file
@@ -0,0 +1,121 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 256;
|
||||
//Ͱ
|
||||
int b[N];//0 ~ 255
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
else
|
||||
res += (a - '0') * 16;
|
||||
|
||||
if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
else
|
||||
res += b - '0';
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
char c1;
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = '0' + a;
|
||||
char c2;
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = '0' + b;
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
//ԭʼ<D4AD><CABC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
vector<string> q;
|
||||
|
||||
//<2F>ṹ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>еĻҽװ<D2BD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||
struct Node {
|
||||
int id;//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
int cnt;//<2F><><EFBFBD><EFBFBD>
|
||||
const bool operator<(const Node &b) const {
|
||||
if (cnt == b.cnt)
|
||||
return id < b.id;
|
||||
return cnt > b.cnt;
|
||||
}
|
||||
};
|
||||
vector<Node> vec;//<2F><>Ҫ<EFBFBD><D2AA>b<EFBFBD><62>װ<EFBFBD><D7B0>Node<64>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int main() {
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
freopen("D://HuiJie.txt", "r", stdin);
|
||||
//freopen("D://test.txt", "w",stdout);
|
||||
|
||||
int n;
|
||||
cin >> n;//<2F><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
cin >> s;
|
||||
q.push_back(s);//ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
||||
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char c1 = s[j], c2 = s[j + 1];
|
||||
int k = toDec(c1, c2); //<2F>ҽ<D2BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
b[k]++;
|
||||
}
|
||||
}
|
||||
//<2F>ҳ<EFBFBD>ǰ16λʹ<CEBB><CAB9>Ƶ<EFBFBD>ʸߵĻҽ<C4BB>
|
||||
//<2F><><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
||||
//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
||||
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?Ͱ<><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ǰ
|
||||
for (int i = 0; i <= 255; i++) {
|
||||
if (b[i]) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
vec.push_back({i, b[i]});
|
||||
}
|
||||
//ʹ<><CAB9><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2B7BDB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
sort(vec.begin(), vec.end());
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>
|
||||
for (int i = 0; i < min(16, (int)vec.size()); i++)
|
||||
cout << toHex(vec[i].id);
|
||||
cout << endl;
|
||||
|
||||
//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
|
||||
for (int i = 0; i < n; i++) { //ö<><C3B6>ÿ<EFBFBD><C3BF>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ÿ2<C3BF><32>һ<EFBFBD>飬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
||||
for (int j = 0; j < q[0].size(); j += 2) {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char c1 = q[i][j], c2 = q[i][j + 1];
|
||||
//<2F><><EFBFBD><EFBFBD>ab<61><62>װ<EFBFBD><D7B0><EFBFBD>Ķ̴<C4B6><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vec<65>е<EFBFBD>ǰ16<31><36><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int x = toDec(c1, c2);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < min(16, (int)vec.size()); k++) { //16<31><36><EFBFBD>з<EFBFBD><D0B7>յģ<D5B5><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>û<EFBFBD><C3BB>16<31><36><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>
|
||||
if (mi > abs(vec[k].id - x)) {
|
||||
mi = abs(vec[k].id - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
//mi_p [0,255] -> ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>a,b<><62><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>Ϊmi_p<5F><70><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD>ֵ
|
||||
cout << toHex(mi_p)[1];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
102
GESP/资料/灰阶图像/糖豆版本 2.cpp
Normal file
102
GESP/资料/灰阶图像/糖豆版本 2.cpp
Normal file
@@ -0,0 +1,102 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= '0' && a <= '9')
|
||||
res += (a - '0') * 16;
|
||||
else if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
|
||||
if (b >= '0' && b <= '9')
|
||||
res += b - '0';
|
||||
else if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
return res;
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
char c1, c2;
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = '0' + a;
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = '0' + b;
|
||||
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
|
||||
const int N = 256;
|
||||
//Ͱ
|
||||
int bucket[N];//0 ~ 255
|
||||
|
||||
//ԭʼ<D4AD><CABC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
string q[30];
|
||||
|
||||
//<2F>ṹ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>еĻҽװ<D2BD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||
struct Node {
|
||||
int id;//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
int cnt;//<2F><><EFBFBD><EFBFBD>
|
||||
const bool operator<(const Node &b) const {
|
||||
if (cnt == b.cnt)
|
||||
return id < b.id;
|
||||
return cnt > b.cnt;
|
||||
}
|
||||
};
|
||||
vector<Node> vec;//<2F><>Ҫ<EFBFBD><D2AA>bucket<65><74>װ<EFBFBD><D7B0>Node<64>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int main() {
|
||||
freopen("D://HuiJie.txt", "r", stdin);
|
||||
|
||||
int n;
|
||||
cin >> n;//<2F><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
cin >> s;
|
||||
q[i] = s;//<2F><><EFBFBD><EFBFBD>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char a = s[j], b = s[j + 1];
|
||||
int k = toDec(a, b); //<2F>ҽ<D2BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
bucket[k]++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i <= 255; i++)
|
||||
vec.push_back({i, bucket[i]});
|
||||
sort(vec.begin(), vec.end());
|
||||
|
||||
//ǰʮ<C7B0><CAAE>λ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
||||
for (int i = 0; i < min(16, (int)vec.size()); i++)
|
||||
cout << toHex(vec[i].id) ;
|
||||
cout << endl;
|
||||
|
||||
//<2F>ڶ<EFBFBD><DAB6>ʵĻش<C4BB>
|
||||
for (int i = 1; i <= n; i++) { //ö<><C3B6>ÿ<EFBFBD><C3BF>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ÿ2<C3BF><32>һ<EFBFBD>飬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
||||
for (int j = 0; j < q[1].size(); j += 2) {
|
||||
char a = q[i][j], b = q[i][j + 1]; //0 F ,0 F
|
||||
int x = toDec(a, b);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < min(16, (int)vec.size()); k++) { //16<31><36><EFBFBD>з<EFBFBD><D0B7>յģ<D5B5><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>û<EFBFBD><C3BB>16<31><36><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>
|
||||
if (mi > abs(vec[k].id - x)) {
|
||||
mi = abs(vec[k].id - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
cout << toHex(mi_p)[1];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
102
GESP/资料/灰阶图像/糖豆版本.cpp
Normal file
102
GESP/资料/灰阶图像/糖豆版本.cpp
Normal file
@@ -0,0 +1,102 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
int toDec(char a, char b) {
|
||||
int res = 0;
|
||||
if (a >= '0' && a <= '9')
|
||||
res += (a - '0') * 16;
|
||||
else if (a >= 'A' && a <= 'F')
|
||||
res += (a - 'A' + 10) * 16;
|
||||
|
||||
if (b >= '0' && b <= '9')
|
||||
res += b - '0';
|
||||
else if (b >= 'A' && b <= 'F')
|
||||
res += b - 'A' + 10;
|
||||
return res;
|
||||
}
|
||||
|
||||
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
||||
string toHex(int x) {
|
||||
char c1, c2;
|
||||
int a = x % 16; // 0 ~ 15
|
||||
int b = x / 16; //
|
||||
if (a >= 10)
|
||||
c1 = 'A' + a - 10;
|
||||
else
|
||||
c1 = '0' + a;
|
||||
if (b >= 10)
|
||||
c2 = 'A' + b - 10;
|
||||
else
|
||||
c2 = '0' + b;
|
||||
|
||||
string res;
|
||||
res.push_back(c2);
|
||||
res.push_back(c1);
|
||||
return res;
|
||||
}
|
||||
|
||||
const int N = 256;
|
||||
//Ͱ
|
||||
int bucket[N];//0 ~ 255
|
||||
|
||||
//ԭʼ<D4AD><CABC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
string q[30];
|
||||
|
||||
//<2F>ṹ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>еĻҽװ<D2BD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||
struct Node {
|
||||
int id;//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
int cnt;//<2F><><EFBFBD><EFBFBD>
|
||||
const bool operator<(const Node &b) const {
|
||||
if (cnt == b.cnt)
|
||||
return id < b.id;
|
||||
return cnt > b.cnt;
|
||||
}
|
||||
};
|
||||
vector<Node> vec;//<2F><>Ҫ<EFBFBD><D2AA>bucket<65><74>װ<EFBFBD><D7B0>Node<64>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int main() {
|
||||
freopen("D://HuiJie.txt", "r", stdin);
|
||||
|
||||
int n;
|
||||
cin >> n;//<2F><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
for (int i = 1; i <= n; i++) {
|
||||
string s;
|
||||
cin >> s;
|
||||
q[i] = s;//<2F><><EFBFBD><EFBFBD>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (int j = 0; j < s.size(); j += 2) {
|
||||
char a = s[j], b = s[j + 1];
|
||||
int k = toDec(a, b); //<2F>ҽ<D2BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
bucket[k]++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i <= 255; i++)
|
||||
vec.push_back({i, bucket[i]});
|
||||
sort(vec.begin(), vec.end());
|
||||
|
||||
//ǰʮ<C7B0><CAAE>λ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
||||
for (int i = 0; i < min(16, (int)vec.size()); i++)
|
||||
cout << toHex(vec[i].id) ;
|
||||
cout << endl;
|
||||
|
||||
//<2F>ڶ<EFBFBD><DAB6>ʵĻش<C4BB>
|
||||
for (int i = 1; i <= n; i++) { //ö<><C3B6>ÿ<EFBFBD><C3BF>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ÿ2<C3BF><32>һ<EFBFBD>飬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
||||
for (int j = 0; j < q[1].size(); j += 2) {
|
||||
char a = q[i][j], b = q[i][j + 1]; //0 F ,0 F
|
||||
int x = toDec(a, b);
|
||||
int mi = INT_MAX;
|
||||
int mi_p = 0;
|
||||
for (int k = 0; k < min(16, (int)vec.size()); k++) { //16<31><36><EFBFBD>з<EFBFBD><D0B7>յģ<D5B5><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>û<EFBFBD><C3BB>16<31><36><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>
|
||||
if (mi > abs(vec[k].id - x)) {
|
||||
mi = abs(vec[k].id - x);
|
||||
mi_p = k;
|
||||
}
|
||||
}
|
||||
cout << toHex(mi_p)[1];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
17
GESP/资料/灰阶图像/输出文件大小.cpp
Normal file
17
GESP/资料/灰阶图像/输出文件大小.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
ofstream fout;
|
||||
fout.open("1.txt");
|
||||
for (int i = 1; i <= 10; i++) {
|
||||
if (i % 5 == 0) {
|
||||
int x = 6;
|
||||
fout << x;
|
||||
} else {
|
||||
char ch = 'A';
|
||||
fout << ch;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user