摘要: THU那四场考试没考好,只有20+名。这也许是我OI生涯中最后一场吧(已确认是最后一场),真是感慨万千。day0搬进浙大宿舍404房间(神房间号),四个人一间。中午发现学军伙食相当良心,是我参加的OI活动中最良心的day1徐寅展讲了一些动态维护图的连通性以及最小生成树的算法,太深了,基本上只听懂第一... 阅读全文
posted @ 2015-02-14 21:59 jason_yu 阅读(884) 评论(0) 推荐(0) 编辑
摘要: Codeforces 285这场rating又掉了,好在只掉了十多。题目比较水,但是我比赛时居然只艰辛地过了前两道。504A由于图是森林,所以一定有度为1的点,把这些点删了后图还是森林。然后就完了。比赛的时候居然把森林当成了树,交了3次才过。504B把排列表示为一个n元组\( (p_0, p_1, ... 阅读全文
posted @ 2015-01-16 15:30 jason_yu 阅读(471) 评论(0) 推荐(0) 编辑
摘要: NOIP2012:才摸了三四个月OI就上阵当炮灰,果然一下就被轰得渣都不剩了。D1看到T1这道模拟水题时很激动,立马就把它A了。然后T2就不会了,果断写了个阶乘的暴力,根本没有想过什么排序贪心。T3也只写了暴力。D2T1用的暴力枚举,花了大量精力在减小枚举量上面,结果大概多拿了分。T2只会写数组模拟... 阅读全文
posted @ 2014-11-10 21:32 jason_yu 阅读(408) 评论(0) 推荐(0) 编辑
摘要: D Little Victor and Set题目链接构造的好题。表示是看了题解才会做的。假如[l,r]长度不超过4,直接暴力就行了。假如[l,r]长度大于等于5,那么如果k = 1,显然答案应该是l;如果k=2,可以找到a^(a+1)=1;如果k=3,首先只取两个就得到一个下界为1,但是可能出现为... 阅读全文
posted @ 2014-08-21 21:51 jason_yu 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 之前说过这题能用点分治(详见http://www.cnblogs.com/jasonyu/p/noi2014.html),但其实还有更粗暴的解法。要求出一个点的答案,我们需要知道树上一段路径的点形成的下凸壳。不过我们其实也不一定非要知道这整段的下凸壳,分成合适的段数分别二分求最优值也可以。假如是一条... 阅读全文
posted @ 2014-08-06 17:03 jason_yu 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 这题不是裸的最短路么?但是一看数据范围就傻了。点数10^6,边数10^7。这个spfa就别想了(本来spfa就是相当不靠谱的玩意),看来是要用堆优化dijkstra了。但是,平时写dijkstra时为了偷懒直接用的STL的priority_queue,没办法改变权值,所以都是直接把pair压进堆里。... 阅读全文
posted @ 2014-08-06 11:16 jason_yu 阅读(1931) 评论(0) 推荐(1) 编辑
摘要: 起床困难综合症(BZOJ 3668)送分题,直接从高位向低位贪心。魔法森林(BZOJ 3669)一个容易想到的办法就是枚举A的最大值,以B作为权值求最小生成树。暴力的话要T的。如果从小到大枚举A的最大值,每次仅会添加一些新的边,所以自然想到用LCT维护。本来还可以考一下LCT的,结果考场上A此题的人... 阅读全文
posted @ 2014-08-03 22:10 jason_yu 阅读(2750) 评论(0) 推荐(2) 编辑
摘要: 这两天终于基本理解了Link-Cut Tree这种神一般的东西。然后就来做这道题了。原题是CodeChef上的。CodeChef上没有强制在线,且时限更宽松,所以似乎用莫队一样的算法把询问分组就能水过。但是BZOJ上这道有部分数据强制在线,而且实现紧得多。于是只能用动态树了。简单来说,就是用动态树维护\([1, i]\)中的边的最大生成树。也就是说往图中加入不再这个生成树上且标号小于i的边时不会改变连通块的个数。这应该是很显然的。假如前面某条边会改变连通块的个数,它就应该保留在树中。然后我们用线段树维护连续编号的边中有哪些在当前的最大生成树中。假如允许离线,我们只需要将询问按右端点排序从左往右 阅读全文
posted @ 2014-04-07 17:22 jason_yu 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 感觉此题难啊,数学还是太渣了,看了半天的题解才算明白了点儿。题目大意给一个长度为n且仅由1和-1组成的序列ai, i = 1, 2, ..., n,每个位置都有另一个值vi,要求用某种方案将序列划分为m(0 < m < n)个非空连续子序列,使得所有子序列中和的最大绝对值最小,并且在所有满足上述条件的方案中划分位置的v[i]序列字典序最小。猜想及证明记\(S_i = \sum_{j = 1}^{i}{a_j}\)记题目中说的和的最大绝对值的最小值为有如下几个结论若并且,则若并且,则若,则证明:第一条结论是显然的对于第二条结论,首先可以肯定,所以。我们要证明对于和为零长度为n的序列, 阅读全文
posted @ 2014-02-02 14:17 jason_yu 阅读(593) 评论(0) 推荐(1) 编辑
摘要: 题目大意一个a * b * c(a * b * c <= 5000)大小的长方体中有一些点需要被覆盖,每次可以选择任意大小的长方体,覆盖其中的点,产生的代价为这个长方体长宽高中最小的那个的长度,求最小代价。二维情形对二维的情形这就是经典的最小割问题了,可以建立二分图用二分图最大匹配算法解决。具体建图方法是将行和列分为两个集合,如果一个点需要被覆盖,就将它所在的行和列连接起来。这种解法的正确性是显然的:由最大流-最小割定理,最大流就等于最小割,而将行和列连起来后,为保证源与汇分开必须将源到行的边或者列到汇的边割掉。错误解法这题我一开始其实就想偏了,我认为可以像二维情形那样直接建立最小割模型 阅读全文
posted @ 2014-02-02 11:59 jason_yu 阅读(312) 评论(0) 推荐(0) 编辑