摘要:
莫队模版 本来想能不学莫队就不学,但是这次比赛被莫队卡得好惨,于是学了一发。。 先切道模板题。。 最普通的莫队就是把序列分块,然后按照询问所在的块来排序,减少指针的移动次数。。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, 阅读全文
摘要:
2 SAT 可以把每一次仪式看成变量,0/1的取值分别为开头举行和结尾举行。 转换为2 SAT接受的命题,就是看某一次仪式中有没有重合的时间段,有的话,就按照不冲突的形式连有向边。 然后跑tarjan就行啦,我们把时间全部转成分钟方便处理。。 include include include incl 阅读全文
摘要:
高中数学 前面那一道数据小,可以暴力枚举每条直线是否相交。。这个显然不行。 两条直线平行,那么对应的直线方程 ax by = c 的a和b一定比例是相同的,而且这个题只有整数坐标,所以最后只要是互相平行的直线,a和b一定可以化简成一样的。 所以我们把两点的直线用斜截式化简,可以求出a, b, c,然 阅读全文
摘要:
思维题 这次比赛打的太烂了。。 一开始还去离散化了一下。。发现完全不需要。 要求找到一个前缀,删除一个数后其他数出现次数相等。 我们肯定要统计每一个数出现的次数,然后考虑符合题意的情况。 显然有四种: 每个数都出现一次 整个前缀只有一种数 有一个数出现的次数和其他数不同,如果这个数出现的次数小于其他 阅读全文
摘要:
很巧的一道点双 两个骑士如果相互憎恨,我们考虑连边的话,不太好处理答案,所以我们尝试一下建反图。 如果两个骑士没有相互憎恨,我们就在他们两个人之间连一条无向边,最后要让你会议召开,那么显然是选择任意一个奇环上的所有点。 现在题目就变成了找不在奇环上的点的个数。 有引理: 若两个点属于不同的点双,则他 阅读全文
摘要:
支配树 其实还是一道支配树板子题。。 最后在树上dfs统计一下点到根的信息就行啦~ include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) using namespace std; typedef long lon 阅读全文
摘要:
支配树 get了新技能。。名字真酷啊(逃 贴个板子 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) using namespace std; typedef long long ll; inline int 阅读全文
摘要:
边双联通分量 数据很水,随便乱搞。。 先把所有边双找出来,然后缩点。之后如果新加的边在同一个边双,那桥的数量不变,如果在不同的边双,就一直往上跳到两个点的LCA,通过的边如果没被标记,就标记一下,标记了就不再是桥了。。超级暴力! include define INF 0x3f3f3f3f defin 阅读全文
摘要:
思维题 又是一道完全不会的题qwq 将一条链划分成若干个联通块,其实就是划分成一些区间。每个区间都会有左端点和右端点,且当一个点作为左端点的时候,必定有一个点作为右端点(都是废话) 那么我们只要把每个点能作为左端点的区间数加起来就是答案啦,右端点的就不用统计了,因为每一个点作为左端点都对应了另一个点 阅读全文
摘要:
模拟+数学 摆放的数是按2的幂增长的,所以直接模拟应该是O(logn)。。 我们直接模拟统计奇数和偶数的个数就行了,用前缀和相减可以得到答案。 前缀和直接用等比数列求和。。然而我竟然忘了QAQ,小学生都不如了。。 include define INF 0x3f3f3f3f define full(a 阅读全文