摘要: 最大流最重要的思想就是反向边,其他的不说了,为什么要有反向边呢? 举个例子,白书上那张图,画一画有奇效。其实每次增广的时候,我们的流到了一个点,然后呢把反向边推回去了,也就是相当于把从那边流过来的流推回去了,为什么这是最优的?你想啊,那个流原来是流向某条边,现在来了一个流,把他替代了,叫这个流回去, 阅读全文
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 阅读(241) 评论(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 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 98分 无能为力了 是个搜索,先开始没动脑筋,直接每种情况都搜,样例都要跑5秒钟,然后看了看题解,看到了一句话:后面可以贪心。 好像是的,那么就贪心吧(因为剩下的东西无非就是几带几,带的越多越好,当然可以贪心了) 然后一直五十几分,下了个数据,发现要逐位枚举顺子,(7 8 9 10 j q) 可以有 阅读全文
posted @ 2016-11-13 19:19 19992147 阅读(133) 评论(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 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 这道题用到了4个dfs,分别是找出所有家的最小生成树,找出一点距离树的最小距离,找出每个点儿子距离的最大值(不包括父亲,也就是指不包括根节点的子树),用父亲的值来更新自己 因为我们可以知道:如果我们在树上,那么最短的距离就是树的长度的两倍-距自己最远的点的距离,当我们不在树上时,就得先走到树上(这条 阅读全文
posted @ 2016-11-13 09:08 19992147 阅读(457) 评论(0) 推荐(2) 编辑