2021 RoboCom 世界机器人开发者大赛-本科组(初赛)7-1 懂的都懂 (20 分)
赛场上我暴力做的,但是先做的后面的题。。。做这个题的时候时间不够了,肠子都悔青了,最后一次提交的时候已经只剩一分钟,测试点0没过,十分没了,试题开放后,就改了一点测试点0就通过了。。。测试点0就是浮点运算的考虑,不要计算平均数,把要测试的图像乘四就行,不然会有浮点偏差,啊啊啊啊啊啊!
C++
1 #include <iostream> 2 #include <set> 3 #include <vector> 4 5 using namespace std; 6 7 int main() { 8 int N = 0, K = 0; 9 cin >> N >> K; 10 vector<int> imag_src(N); 11 set<int> avg; 12 for (int i = 0; i < N; ++i) 13 cin >> imag_src[i]; 14 for (int a = 0; a < N; ++a) { 15 for (int b = 0; b < N; ++b) { 16 for (int c = 0; c < N; ++c) { 17 for (int d = 0; d < N; ++d) { 18 int tmp = 0; 19 if (a!=b && a!= c && a != d && b != c && b != d && c != d) { 20 tmp = (imag_src[a] + imag_src[b] + imag_src[c] + imag_src[d]); 21 avg.insert(tmp); 22 } 23 } 24 } 25 } 26 } 27 28 for (int i = 0; i < K; ++i) { 29 int Mi = 0; 30 cin >> Mi; 31 vector<int> img; 32 for (int j = 0; j < Mi; ++j) { 33 int img_tmp; 34 cin >> img_tmp; 35 img.push_back(img_tmp); 36 } 37 bool flag = true; 38 for (int j = 0; j < img.size(); ++j) { 39 if(avg.find(img[j] * 4) == avg.end()) { 40 flag = false; 41 break; 42 } 43 } 44 if(flag) cout << "Yes" << endl; 45 else cout << "No" << endl; 46 } 47 48 49 return 0; 50 }
默默地一点点变强,细节决定成败