智力被爆了
自闭2题人,T2还写了好一会儿。
C题:
这题我是不是在哪儿见过。
减一减判一判就完事。
#include<bits/stdc++.h>
using namespace std;
int n;
int nx, ny;
int x[100010], y[100010], t[100010];
int main() {
scanf("%d", &n);
int ok = 1;
for(int i=1;i<=n;++i) {
scanf("%d%d%d", &t[i], &x[i], &y[i]);
int det = abs(nx - x[i]) + abs(ny - y[i]);
if((t[i] - t[i-1]) < det)
ok = 0;
if(((t[i] - t[i-1]) - det) % 2 == 1)
ok = 0;
nx = x[i], ny = y[i];
}
printf(ok ? "Yes" : "No");
return 0;
}
D题:
首先先把所有点都映射到
(
[
1
,
2
×
l
e
n
]
,
[
1
,
2
×
l
e
n
]
)
([1,2\times len],[1, 2\times len])
([1,2×len],[1,2×len])的区间里面(第一发就是这么RE的)
然后,如果我们需要使得某个点为黑色,二维区间覆盖点不好做,转一步,变成“如果起点在某个区域内,则答案+1”,白色反之。
发现会有负数下标的情况,于是二维前缀和开到
4
×
l
e
n
4\times len
4×len,做的时候判一下,如果越界了,就
+
=
2
×
l
e
n
+=2\times len
+=2×len,最后一个格子的值在四个格子里头找。
白色懒得算下标了,所以做了个整体加一,然后那一块减一。
边聊QQ边写,所以有点慢HHH
#include<bits/stdc++.h>
using namespace std;
int n, len;
int mp[4010][4010];
int x[100010], y[100010], ned[100010];
char s[123];
inline void add(int stx, int sty, int val) {
mp[stx][sty] += val;
mp[stx][sty + len] -= val;
mp[stx + len][sty] -= val;
mp[stx + len][sty + len] += val;
}
void shua() {
for(int i=1;i<=4000;++i) {
for(int j=1;j<=4000;++j) {
mp[i][j] += mp[i-1][j] + mp[i][j-1] - mp[i-1][j-1];
}
}
}
void check(int &a) {
if(a <= 0)
a += len * 2;
return;
}
int main() {
scanf("%d%d", &n, &len);
for(int i=1;i<=n;++i) {
scanf("%d%d%s", &x[i], &y[i], s+1);
x[i] %= len*2, y[i] %= len*2;
x[i]++, y[i]++;
if(s[1] == 'B')
ned[i] = 1;
else
ned[i] = 0;
}
for(int i=1;i<=n;++i) {
int xx1 = x[i] - len + 1, yy1 = y[i] - len + 1;
int xx2 = x[i] + 1, yy2 = y[i] + 1;
check(xx1), check(xx2), check(yy1), check(yy2);
if(ned[i] == 1) {
add(xx1, yy1, 1);
add(xx2, yy2, 1);
}
else {
add(1, 1, 1), add(1, len+1, 1), add(len+1, 1, 1), add(len+1, len+1, 1);
add(xx1, yy1, -1);
add(xx2, yy2, -1);
}
}
shua();
int ans = 0;
for(int i=1;i<=len*2;++i) {
for(int j=1;j<=len*2;++j) {
int nval = mp[i][j] + mp[i+len*2][j] + mp[i][j+len*2] + mp[i+len*2][j+len*2];
ans = max(ans, nval);
}
}
cout<<ans;
return 0;
}
E题:
冥思苦想20min发觉不会。
看了题解之后:这人的脑子是怎么长的.jpg
他为什么能想到变成不等式.jpg
https://www.cnblogs.com/withhope/p/11740792.html