题解有误&建议添加数据
查看原帖
题解有误&建议添加数据
261935
Unique_Hanpi楼主2022/9/19 09:56

题解区中除了 @BigSmall_En 的题解以外全部有误,本质是因为push_down函数无法保证复杂度,可以构造数据使得每次更新都会遍历一遍一整棵线段树,卡到 O(nq)O(nq).

generator:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int MAXN = 1e5+5;
const int Mod = 998244353;

int main() {
    //freopen("test.in", "w", stdout);
    puts("500000 500000");
    for (int i = 1; i <= 500000; i++) {
        if (i & 1) printf("600000 ");
        else printf("1 ");
    }
    puts("");
    for (int i = 1; i <= 500000; i++) {
        printf("2 1 500000 %d\n", 600000 - i);
    }
    return 0;
}
2022/9/19 09:56
加载中...