上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 24 下一页
摘要: ZOJ - 3703 思路: 背包dp 为了使最后的罚时最少,先按做题所需时间排序 运算符重载方便背包转移。 代码: 阅读全文
posted @ 2018-05-09 16:39 Wisdom+.+ 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 最大流: 给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow)。 最小割: 割是网络中定点的一个划分,它把网络中的所有顶点划分成两个顶点集合S和T,其中源点s∈S,汇点t∈T,从S出 阅读全文
posted @ 2018-04-26 17:26 Wisdom+.+ 阅读(355) 评论(0) 推荐(0) 编辑
摘要: D - Kay and Snowflake 思路: 树的重心 利用重心的一个推论,树的重心必定在子树重心的连线上。 然后利用重心的性质,可知,如果有一颗子树的大小超过整棵树的大小的1/2,那么树的重心一定在这颗子树上。 利用以上两条,可知: 如果没有一颗子树的大小超过整棵树的大小的1/2,那么就可以 阅读全文
posted @ 2018-04-23 13:36 Wisdom+.+ 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 模板: 阅读全文
posted @ 2018-04-17 17:05 Wisdom+.+ 阅读(561) 评论(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+.+ 阅读(327) 评论(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+.+ 阅读(315) 评论(7) 推荐(0) 编辑
摘要: 牛顿迭代法: 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。 详见:https://www.matongxue.com/madocs/205.html#/m 阅读全文
posted @ 2018-04-16 17:22 Wisdom+.+ 阅读(2285) 评论(0) 推荐(0) 编辑
摘要: 1008 思路: 总共有m^n次方种方案,其中相邻两个都不相同的有m * (m - 1) ^ (n - 1)种,两者相减就是答案 代码: 阅读全文
posted @ 2018-04-13 10:40 Wisdom+.+ 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1026 思路: 数位dp 代码: 阅读全文
posted @ 2018-04-13 10:35 Wisdom+.+ 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 字典树 简介:字典树,又称单词查找树,Trie树,是一种树形结构,是哈希树的变种。 优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节 阅读全文
posted @ 2018-04-10 16:49 Wisdom+.+ 阅读(347) 评论(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+.+ 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 961E - Tufurama 思路: 线段树或者分块 遍历 1 - n - 1,求 区间[i + 1, min(a[i], n)]大于等于 i 的个数,累加起来 线段树: 分块: 阅读全文
posted @ 2018-04-09 00:01 Wisdom+.+ 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 960F - Pathwalks 思路: ORZ 杜老师 用map写1e5个树状数组,骚操作 记Q为query和update次数,则节点个数约为Q*log(N) 代码: 阅读全文
posted @ 2018-04-08 22:15 Wisdom+.+ 阅读(297) 评论(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+.+ 阅读(267) 评论(0) 推荐(0) 编辑
摘要: Binary Tree Restoring 思路: 递归 比较a序列和b序列中表示同一个子树的一段区间,不断递归 代码: 阅读全文
posted @ 2018-03-13 17:14 Wisdom+.+ 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Seven Segment Display 思路: 经典数位dp 代码: 阅读全文
posted @ 2018-03-11 13:52 Wisdom+.+ 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 813E - Army Creation 思路: 线段树+二分 先预处理每个点往后走k步的下标 线段树二叉树的每个节点用vector维护这些下标,给这些下标排个序 询问区间L,R,那么把下标小于等于R的位置都减掉,因为只要后面连续k个就够了 代码: 阅读全文
posted @ 2018-03-07 19:49 Wisdom+.+ 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 946D - Timetable 思路: 分组背包 每组物品最多选1个 v[i]表示对于这天来说减掉i节课后最多能减少多少小时的在校时间 代码: 阅读全文
posted @ 2018-03-07 16:15 Wisdom+.+ 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 817F - MEX Queries 思路: 离线+离散化+线段树 代码: 阅读全文
posted @ 2018-03-06 23:00 Wisdom+.+ 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 931F - Teodor is not a liar! 思路: 最长上升子序列 先差分数组染色 如果存在一个点,被所有区间包含,那么这张图一定是山峰状,如下图: 那么只要分别从前和从后找一个最长非严格上升子序列,然后从前往后更新就可以找出最大的山峰序列的长度,这个就是答案 代码: 阅读全文
posted @ 2018-03-06 16:40 Wisdom+.+ 阅读(618) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 24 下一页