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 }

 

posted @ 2021-10-11 19:30  上帝的绵羊  阅读(641)  评论(0编辑  收藏  举报