11 2016 档案

摘要:splay 阅读全文
posted @ 2016-11-28 00:15 19992147 阅读(255) 评论(0) 推荐(0) 编辑
摘要:学习了下treap 阅读全文
posted @ 2016-11-26 13:13 19992147 阅读(172) 评论(0) 推荐(0) 编辑
摘要:treap改了好长时间,erase写错了。。。 splay 阅读全文
posted @ 2016-11-26 13:12 19992147 阅读(238) 评论(0) 推荐(0) 编辑
摘要:第一问很好搞。第二问事实上可以这么想。如果一条边的流量还有,那么我们走过去不要钱,否则要钱,于是跑个费用流,就好了 (其实跑k次spfa也可以,我是这么写的) 阅读全文
posted @ 2016-11-22 22:22 19992147 阅读(299) 评论(0) 推荐(0) 编辑
摘要:首先,我们可以想到从源点向每个有蜥蜴的地方连边,然后拆点,因为我们不能把一个点连向多条边,这样修改边的时候不可以,所以拆个点,就可以了 阅读全文
posted @ 2016-11-22 22:03 19992147 阅读(208) 评论(0) 推荐(0) 编辑
摘要:就是一个tarjan 阅读全文
posted @ 2016-11-21 22:51 19992147 阅读(217) 评论(0) 推荐(0) 编辑
摘要:费用流,其实是求传输一个容量为k的流的最大费用。主要是建图。原点为0,和1连上一条容量为k,费用为0的边,中间每个点拆成两个1和2,连上一条边,容量为k,费用为c,再连一条容量为比k大,费用为0的边,这样是为了跑完费用之后能继续跑拆完后的点和。然后和其他边连上就可以了。n*n和汇点连上一条容量为k, 阅读全文
posted @ 2016-11-21 22:50 19992147 阅读(217) 评论(0) 推荐(0) 编辑
摘要:最大流最重要的思想就是反向边,其他的不说了,为什么要有反向边呢? 举个例子,白书上那张图,画一画有奇效。其实每次增广的时候,我们的流到了一个点,然后呢把反向边推回去了,也就是相当于把从那边流过来的流推回去了,为什么这是最优的?你想啊,那个流原来是流向某条边,现在来了一个流,把他替代了,叫这个流回去, 阅读全文
posted @ 2016-11-20 23:31 19992147 阅读(192) 评论(0) 推荐(0) 编辑
摘要:搜索,据说反着输入有奇效,要用位运算,然后剪不剪枝无所谓,没提速。 阅读全文
posted @ 2016-11-19 19:54 19992147 阅读(351) 评论(0) 推荐(1) 编辑
摘要:我只会这么多 tarjan:codevs 1332 spfa codevs 2038 lca 1787 二分 跳石头 线段树 1012 快速幂: 高精度 3116 阅读全文
posted @ 2016-11-17 22:20 19992147 阅读(242) 评论(0) 推荐(1) 编辑
摘要:先bfs,预处理每块的大小,然后想象一个k*k的窗口,不断滑动,记录里面有多少堵墙,有多少个不同的连通块,计算即可 阅读全文
posted @ 2016-11-16 22:09 19992147 阅读(545) 评论(0) 推荐(0) 编辑
摘要:dp,理论上会t,但是实际跑得很快,因为我们只要找到上一个满足条件的值,肯定是最大的,因为这个能选,肯定就能选了 阅读全文
posted @ 2016-11-15 23:36 19992147 阅读(186) 评论(0) 推荐(0) 编辑
摘要:这道题很妙啊。其实我们可以发现重要的不是起点和终点,重要的是个数,然后脑洞一下,可以递推。(我什么都没有想出来)假设我们已经知道了前面所有子串的gcd,那么我们可以用现在的a[i]和前面每个数求gcd,这样就把加入这个新元素的串的所有情况都枚举了一遍,因为gcd的数量很少,所以很快。枚举是存在一个新 阅读全文
posted @ 2016-11-14 23:58 19992147 阅读(284) 评论(0) 推荐(0) 编辑
摘要:这是个bfs 首先建图,先从终点bfs求出每点距离,然后从起点开始,确定初始方向:某点和自己相邻距离比自己小1就是 然后就先贪心和上次一样的方向,如果不能走,就找出一个方向,把自己当前方向改掉,重复过程,直到走到终点 阅读全文
posted @ 2016-11-13 22:12 19992147 阅读(190) 评论(0) 推荐(0) 编辑
摘要:98分 无能为力了 是个搜索,先开始没动脑筋,直接每种情况都搜,样例都要跑5秒钟,然后看了看题解,看到了一句话:后面可以贪心。 好像是的,那么就贪心吧(因为剩下的东西无非就是几带几,带的越多越好,当然可以贪心了) 然后一直五十几分,下了个数据,发现要逐位枚举顺子,(7 8 9 10 j q) 可以有 阅读全文
posted @ 2016-11-13 19:19 19992147 阅读(134) 评论(0) 推荐(0) 编辑
摘要:题目的意思是只需要找一个人就可以了,还以为要找所有的人,怎么看也看不懂。 这道题懂的不是很彻底,挖 我们利用一个差分数组(差分数组:我们能在O(1)的时间内修改一段区间的值) 举个例子:来自hzwer 比如一开始数列a是0 0 0 0 0 0 前缀和0 0 0 0 0 0 3到5天需要2的教室 将a 阅读全文
posted @ 2016-11-13 14:03 19992147 阅读(155) 评论(0) 推荐(0) 编辑
摘要:这道题用到了4个dfs,分别是找出所有家的最小生成树,找出一点距离树的最小距离,找出每个点儿子距离的最大值(不包括父亲,也就是指不包括根节点的子树),用父亲的值来更新自己 因为我们可以知道:如果我们在树上,那么最短的距离就是树的长度的两倍-距自己最远的点的距离,当我们不在树上时,就得先走到树上(这条 阅读全文
posted @ 2016-11-13 09:08 19992147 阅读(458) 评论(0) 推荐(2) 编辑
摘要:贪心,之前先bfs判断是否联通,然后,反向建图,找一个未选择的点,找与他距离最近的点连边,因为每个点都要被选择,所以一个点离他最近的另一个点肯定也被选择,可以贪心 阅读全文
posted @ 2016-11-13 09:02 19992147 阅读(221) 评论(0) 推荐(0) 编辑
摘要:抄了抄代码,看了看区间dp 把这个项链切开,复制一次,枚举右端点,枚举区间长度,确定左端点,区间中选中一个分割点 f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+a[i]*a[k+1]*a[j+1]) 阅读全文
posted @ 2016-11-11 22:51 19992147 阅读(179) 评论(0) 推荐(0) 编辑
摘要:A:hash一下,然后判断是否相等即可 F:二分答案,然后枚举每一秒,注意,贪心时应以结束时间作为标准,否则就会错掉,坑了很长时间 阅读全文
posted @ 2016-11-11 15:15 19992147 阅读(177) 评论(0) 推荐(0) 编辑
摘要:模拟 字符串必须先清零,要不会出现玄学的问题 阅读全文
posted @ 2016-11-11 15:10 19992147 阅读(142) 评论(0) 推荐(0) 编辑
摘要:原先t了很长时间,今天复习了下tarjan,打了一遍,自认为自己的tarjan模板简洁 这道题只有基环树,所以tarjan就可以了 阅读全文
posted @ 2016-11-09 22:33 19992147 阅读(183) 评论(0) 推荐(0) 编辑
摘要:lca裸题,画画图看看就可以了,找出那个一次公共祖先,求距离 阅读全文
posted @ 2016-11-06 00:13 19992147 阅读(111) 评论(0) 推荐(0) 编辑
摘要:bfs,折半搜索,因为直接搜大概有(12)^13?因为每个状态都会扩展出m种状态大概是(12)^13,然而可以折半搜索,只搜一半,状态数变成(12)^7可以接受,但是事实上极限数据要跑很长很长时间,据说正解是启发式搜索?没学过 阅读全文
posted @ 2016-11-06 00:12 19992147 阅读(560) 评论(0) 推荐(0) 编辑
摘要:画个图,很容易发现少兜圈子,就是说这些限制c[i],d[i]可以看做[c[i],d[i]],不让那些区间相交,然后就可以了 阅读全文
posted @ 2016-11-03 23:32 19992147 阅读(144) 评论(0) 推荐(0) 编辑
摘要:首先我们对两个数组排序,对齐每位,然后记录一个火柴对应的另一个火柴,这时我们得到了一个序列:第i根火柴需要被放到第j个位置,然后原来火柴是按升序排序的,这时需要计算逆序对,也就是交换的最少次数 树状数组 x[i],y[i]:编号,然后z[x[i]]=y[i]:第一列第x[i]根火柴应该对应第二列第y 阅读全文
posted @ 2016-11-03 23:30 19992147 阅读(204) 评论(0) 推荐(1) 编辑
摘要:显而易见,我们要找子串,每次记录前缀和,算出余数,然后通过一个数组保存余数,答案就是加上之前余数的总和,要注意整除的情况 阅读全文
posted @ 2016-11-01 21:20 19992147 阅读(127) 评论(0) 推荐(0) 编辑
摘要:这道题抄了答案: 思路:旋转,其实只用旋转四次,因为在换行的过程中旋转其实是没有意义的,因为行列只不过转了个角度。然后主要的是行列的交换,这里我很头疼,写了个盲目搜索,当然wa掉了 问了问某位同志,是这样做的,很巧妙:其实这是一个全排列,一个三个数的全排列套了三个数的全排列,然后该怎么做呢?这里运用 阅读全文
posted @ 2016-11-01 21:17 19992147 阅读(122) 评论(0) 推荐(0) 编辑