摘要:
link 基环树板子。突然想起了一年以前的那个傍晚和黄忠公园的蚊子。往事不堪回首。 基环树找环采用了题解区的一种比较好理解的方法,即拓扑排序。无向图中不断去除度为1的结点,剩下的一定都是环上的结点(虽然可能是基环树森林)。然后可以枚举环上的结点,每次solve都先找环,然后求出这个点对应的树的答案。 阅读全文
摘要:
先说鸽巢原理就是抽屉原理,听起来更高大上一点。 有这样一个结论:任意大小不小于N的整数集合必然存在一个非空子集,集合内元素之和可以整除N。考虑把集合内的元素拿出来,随便搞个排列求前缀和,显然如果存在两个前缀和模N相同那么之间的元素可以构成符合条件的子集。由于鸽巢原理,N个数可以构成N+1个前缀(包括 阅读全文
摘要:
link COCI的一大特点,卡空间。 题足够简单,每个点减去N之后求前缀和,对于每个前缀和看前面有多少前缀和小于等于它。理论上可以用动态开点线段数来做,但空间会爆只有30分左右(话说克罗地亚是穷得配不起64M以上内存的评测机吗。。。)。于是考虑优化空间,可以离线把所有前缀和离散化,再上树状数组查询 阅读全文
摘要:
link 总感觉COCI的题面读不懂。题意是说给定一些平面内的点,点有点权,两个点连边的边权是两个点的集合距离。请求出一棵生成树,满足树内存在点权和模K为0的子集,最小化最大边的边权。 有一个很巧妙的结论,随意选出K个点一定能找出子集符合条件。于是得出结论树内结点不会超过K个,所以每个点只有最多K条 阅读全文