题解 AT_arc132_a Permutation Grid
简要题意:
给定两个数列
反思分析:
有个伸臂和一个神犇在赛时没有看到最后一个条件导致两个人想出了各种各样复杂又奇葩的做法,我不说是谁
有了排列那这不成水题了,我们以样例为例(这什么话)把它按顺序重新排列一下,就会变成这样(我们用
$
我们稍加观察,然后惊奇地发现,坐标为$ 发现这个性质仍然存在!
我们可以通过简单地平移来证明这种做法的正确性,而代码也就相应的非常好写了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using namespace std;
namespace SHAWN {
const int N = 1e5 + 7;
int r[N],c[N];
int n, q;
int work()
{
cin >> n;
for (int i = 1; i <= n; ++i) { cin >> r[i]; }
for (int i = 1; i <= n; ++i) { cin >> c[i]; }
cin >> q;
for (int i = 1, x, y; i <= q; ++i) {
cin >> x >> y;
if (r[x] + c[y] > n) { cout << '#'; }
else { cout << '.'; }
}
return 0;
}
}
signed int main() {
ios :: sync_with_stdio(false);
cin.tie(nullptr);
return SHAWN :: work();
}