Solve Everything :-) 题解
|| 题目传送门 ||
题意简述
有 \(S\) 个问题集,每个问题集都有 \(13\) 个问题。现在给出一些问题集的预测,对于每个问题集,求是否可以考虑该问题集,以便该问题集中的每个问题都可以由至少一个团队解决。
输入的第一行由一个整数 \(S\) \((S≤ 23)\) 组成,即问题集的数量,其中有 \(13\) 个问题。接下来的 \(S\) 行中的每一行都由 \(13\) 个空格分隔的整数组成,这是预测的解决每个问题的团队数量。
对于每个问题集,输出一行格式为 Set #N:Ans。这里 N 是一个整数,它是集合的序列号。Ans 是你的答案,要么是 Yes,要么是 No。
题目分析
这道题看似很难理解,实则并没有想象中那么难。这道题实际要做的,就是看预测的问题集中的每个问题是否可以由至少一个团队解决。
用通俗一点的话来讲,就是看一个数列中是否不含有 \(0\)。如果没有 \(0\),就输出 Yes,否则输出 NO。现在就可以清晰地完成这道题了。
但是,这里还要注意,
在输出时,要注意输出格式是 Set #N:Ans(建议复制),注意中间的空格。(这算是这道题的坑点)
参考代码
#include<bits/stdc++.h>
//#define int long long 不需要long long 就注释掉
#define fast_running ios::sync_with_stdio(false),std::cin.tie(0),std::cout.tie(0);
using namespace std;
signed main() {
fast_running; //稍稍加个速
int T; //问题集数量。
cin >> T;
for (int step = 1; step <= T; step++) { //第几个问题集。
int flag = 1, f;
for (int i = 1; i <= 13; i++) {
cin >> f;
if (f == 0) flag = 0;
//输入一个数看一个数,如果为 0,直接标记不符合要求。
}
cout << "Set #" << step << ": "; //先输出前面的问题集序号。
if (flag == 1) cout << "Yes\n";
else cout<<"No\n";
//再输出问题的具体答案。
}
return 0;
}

浙公网安备 33010602011771号