摘要:
link 线段树套动态开点的权值线段树。区间查询值域的元素数量,用树套树维护即可。虽然可以用暴力水过去,但还是试一下吧。震惊的是a和b的大小关系是不一定的,调了半天不明所以。很悲惨。 #include<bits/stdc++.h> //#define feyn using namespace std 阅读全文
摘要:
link 基环树板子。突然想起了一年以前的那个傍晚和黄忠公园的蚊子。往事不堪回首。 基环树找环采用了题解区的一种比较好理解的方法,即拓扑排序。无向图中不断去除度为1的结点,剩下的一定都是环上的结点(虽然可能是基环树森林)。然后可以枚举环上的结点,每次solve都先找环,然后求出这个点对应的树的答案。 阅读全文
摘要:
link COCI的一大特点,卡空间。 题足够简单,每个点减去N之后求前缀和,对于每个前缀和看前面有多少前缀和小于等于它。理论上可以用动态开点线段数来做,但空间会爆只有30分左右(话说克罗地亚是穷得配不起64M以上内存的评测机吗。。。)。于是考虑优化空间,可以离线把所有前缀和离散化,再上树状数组查询 阅读全文
摘要:
link 总感觉COCI的题面读不懂。题意是说给定一些平面内的点,点有点权,两个点连边的边权是两个点的集合距离。请求出一棵生成树,满足树内存在点权和模K为0的子集,最小化最大边的边权。 有一个很巧妙的结论,随意选出K个点一定能找出子集符合条件。于是得出结论树内结点不会超过K个,所以每个点只有最多K条 阅读全文
摘要:
link 建议管理大大把这道题评蓝。理由:运用了异或的性质。 首先考虑每个棋子对哪些格子造成影响。显然对于所有与它同行同列且不和它重合的格子,加入这个棋子会使得这些格子的权值异或上这个棋子的权值。但题目中说明了棋子不会对自己的格子造成任何影响,而我们知道任何数异或自己等于零,所以这个没有影响可以看成 阅读全文