04 2018 档案

摘要:最大流: 给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow)。 最小割: 割是网络中定点的一个划分,它把网络中的所有顶点划分成两个顶点集合S和T,其中源点s∈S,汇点t∈T,从S出 阅读全文
posted @ 2018-04-26 17:26 Wisdom+.+ 阅读(377) 评论(0) 推荐(0)
摘要:D - Kay and Snowflake 思路: 树的重心 利用重心的一个推论,树的重心必定在子树重心的连线上。 然后利用重心的性质,可知,如果有一颗子树的大小超过整棵树的大小的1/2,那么树的重心一定在这颗子树上。 利用以上两条,可知: 如果没有一颗子树的大小超过整棵树的大小的1/2,那么就可以 阅读全文
posted @ 2018-04-23 13:36 Wisdom+.+ 阅读(177) 评论(0) 推荐(0)
摘要:模板: 阅读全文
posted @ 2018-04-17 17:05 Wisdom+.+ 阅读(578) 评论(0) 推荐(0)
摘要:C3 - Encryption (hard) 思路: 记sum[i]表示0 - i 的和对 p 取模的值。 1.如果k * p > n,那么与C2的做法一致,O(k*p*n)复杂度低于1e8。 2.如果k * p <= n 那么根据抽屉原理,必有k个sum[i]相同, 那么任意取k - 1个相同的 阅读全文
posted @ 2018-04-17 12:09 Wisdom+.+ 阅读(340) 评论(0) 推荐(0)
摘要:C2 - Encryption (medium) 思路: 传统的dp: dp[i][j] 表示到第i个位置为止,分成j段的最大值 dp[i][j] = max(dp[l][j-1] + (sum[i] - sum[l]) % p) 0<= l < i 优化的dp: 我们发现n很大,但是p很小 于是 阅读全文
posted @ 2018-04-16 18:49 Wisdom+.+ 阅读(327) 评论(7) 推荐(0)
摘要:牛顿迭代法: 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。 详见:https://www.matongxue.com/madocs/205.html#/m 阅读全文
posted @ 2018-04-16 17:22 Wisdom+.+ 阅读(2392) 评论(0) 推荐(0)
摘要:1008 思路: 总共有m^n次方种方案,其中相邻两个都不相同的有m * (m - 1) ^ (n - 1)种,两者相减就是答案 代码: 阅读全文
posted @ 2018-04-13 10:40 Wisdom+.+ 阅读(142) 评论(0) 推荐(0)
摘要:1026 思路: 数位dp 代码: 阅读全文
posted @ 2018-04-13 10:35 Wisdom+.+ 阅读(168) 评论(0) 推荐(0)
摘要:字典树 简介:字典树,又称单词查找树,Trie树,是一种树形结构,是哈希树的变种。 优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节 阅读全文
posted @ 2018-04-10 16:49 Wisdom+.+ 阅读(389) 评论(0) 推荐(0)
摘要:Worst Case 思路: 使 a <= b 当 a == b 时 或者 a == b - 1 时,答案显然为 2 * (a - 1) 否则找到最大的 c ,使得 c * c < a * b 如果 c * (c + 1) >= a * b ,那么可以构造 c - 1 + c 个 数对 ,减去 一个 阅读全文
posted @ 2018-04-09 22:58 Wisdom+.+ 阅读(238) 评论(0) 推荐(0)
摘要:961E - Tufurama 思路: 线段树或者分块 遍历 1 - n - 1,求 区间[i + 1, min(a[i], n)]大于等于 i 的个数,累加起来 线段树: 分块: 阅读全文
posted @ 2018-04-09 00:01 Wisdom+.+ 阅读(215) 评论(0) 推荐(0)
摘要:960F - Pathwalks 思路: ORZ 杜老师 用map写1e5个树状数组,骚操作 记Q为query和update次数,则节点个数约为Q*log(N) 代码: 阅读全文
posted @ 2018-04-08 22:15 Wisdom+.+ 阅读(319) 评论(0) 推荐(0)
摘要:960D - Full Binary Tree Queries 思路: 用move1[i]记录第i层第1种操作移动的个数(对这一层的个数取模) 用move2[i]记录第i层第2种操作移动的个数(对这一层的个数取模) 查询方法: 记当前值为 x,当前层为 i,则经过操作后,他到了 x + move1[ 阅读全文
posted @ 2018-04-08 20:23 Wisdom+.+ 阅读(278) 评论(0) 推荐(0)