摘要: http://acm.hdu.edu.cn/showproblem.php?pid=6070 题解 首先不难看出错误率是单调的,那么我们可以直接二分答案x,某个区间的错误率=区间数的种类cnt/区间长度r-l+1,变成:cnt+l*x<r*x+x;然后枚举区间区间右端点r,当前点影响的区间是le[i 阅读全文
posted @ 2019-04-28 18:44 Venux 阅读(174) 评论(0) 推荐(0) 编辑
摘要: http://www.51nod.com/Challenge/Problem.html#!#problemId=1571 题解 题目要求的最近点对不太符合区间加合性,所以不能直接用线段树在线做。 我们可以先把数据离散化,求出当前点左边离他最近的点的位置,从左到右扫一遍,更新当前点的距离,然后回答以当 阅读全文
posted @ 2019-04-26 21:52 Venux 阅读(199) 评论(0) 推荐(0) 编辑
摘要: http://www.51nod.com/Challenge/Problem.html#!#problemId=1781 题解 核心问题:漏斗从1到n都必须覆盖到,用到dp思想:分别从左往右和从右往左算出小球移动到当前漏斗的最少花费,最后再减去重复的最后一支漏斗的花费更新答案。 具体:把列离散化,然 阅读全文
posted @ 2019-04-25 21:45 Venux 阅读(145) 评论(0) 推荐(0) 编辑
摘要: http://www.51nod.com/Challenge/Problem.html#!#problemId=1494 题解 一开始有start个人投自己,num表示当前已经收买了多少人,从大到小枚举自己以i张票当选,那么其他人的票数一定要小于i,拿钱收买他们花费最少的>=i的这部分人,再加上另外 阅读全文
posted @ 2019-04-23 10:41 Venux 阅读(223) 评论(0) 推荐(0) 编辑
摘要: http://www.51nod.com/Challenge/Problem.html#!#problemId=1766 题解 首先要知道一个结论:两个区间的最远点对一定由各自区间的最远点对里的点组成。 然后就好做了,dfs建序然后求出欧拉序,然后打st表,通过lca求树上两点距离,然后在欧拉序上建 阅读全文
posted @ 2019-04-22 19:41 Venux 阅读(252) 评论(0) 推荐(0) 编辑
摘要: D. Walking Robot 题意 机器人在一维坐标轴上从0走到x,中途可以在有光的地方可以选择给太阳能电池充电,每次移动都要消耗一单位电,蓄电池容量为a,太阳能电池容量为b,一开始都是满电,问机器人采取最佳策略最多可以走多远。 题解 直接贪心模拟即可,具体见代码注释 E. Two Teams 阅读全文
posted @ 2019-04-17 14:47 Venux 阅读(251) 评论(0) 推荐(0) 编辑
摘要: LCA板子,动态数组和链式前向星两种存图版本,自取,代码参考MorsLin。 动态数组存图: 前向星: 阅读全文
posted @ 2019-04-15 17:02 Venux 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 51Nod 1364 最大字典序排列 抱歉博客两天没更新。今天被数据挖掘老师挂科警告,再也不敢上课划水了,好怕毕不了业啊,为什么大佬们那么强还可以保持gpa,我acm这么菜,怎么学业还出问题了呀,感觉人跟人之间的区别真的比人跟狗的区别还大。 题解 那么我们从左往右依此确定当前位置应该为什么数,现在要 阅读全文
posted @ 2019-04-10 20:16 Venux 阅读(238) 评论(0) 推荐(0) 编辑
摘要: http://www.51nod.com/Challenge/Problem.html#!#problemId=1199 又wa了一下午。。。 思路 树的先序遍历顺序刚好对应线段树的一个区间,利用这一点直接dfs建序,然后再建线段树来查询修改就可以了。 阅读全文
posted @ 2019-04-07 18:49 Venux 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 线段树专场 更新结点,更新区间,区间求和(平均数)+ 树链剖分51Nod 1199 Money out of Thin Air 更新结点,区间最值,结点查找,区间求和51Nod 1364 最大字典序排列 区间合并 + LCA51Nod 1766 树上的最远点对 更新结点,结点查找,扫描线51Nod 阅读全文
posted @ 2019-04-07 13:59 Venux 阅读(167) 评论(0) 推荐(0) 编辑