血的教训
曾用名:写代码要注意细节
浪费的时间不少了罢。
-
记得有一次,不过忘了是什么。
-
年代久远的ABC,D,0.5~1h
cnt = unique(c + 1, c + cnt + 1) - c + 1;
//最后应为 - 1
- 年代久远的Cf,1.5~2h
const int p = 998144353;
//不知道怎么说
- 33dai NOIP2023模拟赛39,B,1h~2h
//少 mod 一个 p。
- 2023.12.9,平衡树,6h
void zx(int &rt){
int p = R[rt];
R[rt] = L[p], L[p] = rt;
rt = p;
push_up(R[p]), push_up(p);
//这个push_up(R[p])应为push_up(L[p])
}
最好不会有更新。
又更新了
- 2024.3.30,20240330-XCPC选拔赛第二场,C,类莫队,2h
int n, m, a[N];
struct ques{
int i, l, r, x;
}q[N], p[N];
bool cmp(ques x, ques y){
if(x.x == y.x) return x.i < y.i;
return x.x < y.x;
}
int ans[N];
struct STree{}S;
int lst;
signed main(){
read(n), read(m);
for(int i = 1; i <= n; i++){
read(a[i]);
p[i].i = i, p[i].x = a[i];
}sort(p + 1, p + n + 1, cmp);
for(int i = 1; i <= m; i++){
read(q[i].l), read(q[i].r), read(q[i].x);
q[i].i = i;
}sort(q + 1, q + m + 1, cmp);
S.add(Root, 1, 1);
lst = 1;
//这里应该考虑q[j].x < p[1].x的情况。
//葬送了去xcpc和ccpc的机会
//update:虽然还是去了
for(int i = 1, j = 1; i <= n; i++){
int R = p[i].i;
if(a[R] != a[R + 1] || R == n){
int L = p[lst].i;
if(a[R] < a[R + 1] && R < n) S.add(Root, R + 1, 1);
if(a[L] > a[L - 1] || L == 1) S.add(Root, L, -1);
lst = i + 1;
}
if(p[i].x != p[i + 1].x || i == n){
while(j <= m && (q[j].x < p[i + 1].x)){
ans[q[j].i] = S.ask(Root, 0, q[j].r) - S.ask(Root, 0, q[j].l - 1) + (a[q[j].l] > p[i].x && a[q[j].l - 1] > p[i].x && q[j].l > 1);
j++;
}
while(j <= m && i == n){
ans[q[j].i] = 0;
j++;
}
}
}
for(int i = 1; i <= m; i++) print(ans[i]), Ed;
return 0;
}
这辈子不想有更新。
又更新了
- 2024.4.9,CF1935,C,sdvfalk;jhsvdalkjashfdo;ijsfvadcopijsadfguhibikojbhad
bool cmp(node x, node y){
return x.b <= y.b;
//这里不能有等于,因为那样不对。
}
不好评价。
好评价,好评价,又更新了。
- 2024.6.27,ABC359,G
void dfs2(int u, int F){
if(a[u] == I) sum[u] = 1;
else sum[u] = 0;
Son(G, u){
if(v == F) continue;
dfs2(v, u);
sum[u] += sum[v];
}
ans += (ll)sum[u] * ((ll)su - (ll)sum[u]);
//return what can i say
}
我不要更新了口牙
- 2024.8.20,D,3h
int Mod(ll x){return x >= p : x % p : x;}
//优化强而有力,强而有力口牙

浙公网安备 33010602011771号