2022.11.18

P4019

一开始以为操作 \(③\) 中的 \(x\)\(y\) 是可以不相邻的,于是就裂开了。
这题只要先把操作记录下来,把操作 \(③\) 里的点合并起来,把操作 \(①②\)\(bool\) 数组记录一下,直接枚举 \(1\) 号点的颜色然后 \(DP\) 就好了,复杂度 \(\Theta(nc^2)\)
注意判断操作 \(①②\) 的冲突情况。


P2221

线段树入门题。
注意不要爆 \(long long\)
比如这里:

code
if(op == 'Q'){
    int l = rd(), r = rd();
    if(l == r)
        printf("0/1\n");
    else{
        ll up = T.query(1, l, r - 1).val;
        ll down = 1ll * (r - l) * (r - l + 1) / 2;// 这里曾寄了一回
        ll g = gcd(up, down);
        printf("%lld/%lld\n", up / g, down / g);
    }
}
posted @ 2022-11-18 18:59  Cotsheep  阅读(9)  评论(0编辑  收藏  举报