今天是2019.12.15,心情还是不好,但已经过去一个月了,感觉还是应该把这玩意了结了。先摆分数:$$95+60+0+32+12+55=254$$菜的真实。游记Day1自信满满去考,自信满满出来,回家去自测发现T1T2都爆了,T2甚至连个保底分都没有。大概说下我T2出的锅吧:我的做法是用个数组模拟栈,在退到上一层时计算贡献,但我忘记了清空最后一层。当时看出来了大样例3是链,但感觉大样例2挺...
最近都是各种校内模拟赛,好久没写题解了。题意题解用线段树维护列,每个线段树记录这个区间内:最左边一列每个方块所属的集合最右边所属的集合四联通颜色块个数,即答案合并时对中间两列遍历所有行,如果两块颜色相同就用并查集把两个集合给合并起来,并将答案 $-1$ 。#include<bits/stdc++.h>
#define fi first
#define se second
#def...
题意挺简单的自己去看吧~题解因为有开闭两种区间,所以对每两个数中间也建一个点,总的点数即为 $2N$ 。维护一个长度为 $2N$ 的 $0/1$ 序列,支持区间覆盖,区间翻转操作。令 $T=[l,r]$ ($l,r$ 为新编的点):U T:覆盖 $[l,r]$ 为 $1$I T:覆盖 $[0,l-1],[r+1,2N]$ 为 $0$D T:覆盖 $[l,r]$ 为 $0$C T:翻转整个区间...
题意题解每个数有 $3$ 种状态,直接搜索 $O(3^{26})$ 会爆,但折半搜索的 $O(2\times 3^{13})$ 就可以。注意到第一次搜索需要保存两个值 $cnt$ 和 $sum$ ,表示用阶乘的次数以及当前的数。可以用 unordered map 来维护,把第一个值开在外面。#include<bits/stdc++.h>
#define ll long long
...