随笔分类 -  二分答案

摘要:题面传送门 这道题我们首先会想到处理中位数的常见方法: 二分枚举答案ans,将大于ans的数变为1,小于的则变成-1;如果这个区间的和大于1,则说明中位数比枚举的答案要大,否则要小; 但是这道题的区间并不确定,难道我们要n*n枚举?肯定不行; 观察性质,我们发现,对于区间[b,c],我们肯定要选择, 阅读全文
posted @ 2019-12-27 17:39 神之右大臣 阅读(238) 评论(0) 推荐(0) 编辑
摘要:这道题与2018年十二省联考中的异或粽子很相像,可以算作一个简易版; 因为这不需要可持久化; 也就是说求任意两个数异或起来的第k大值; 首先把所有数放进trie里。 然后二分答案,枚举每个数,相应地在trie上从高位开始跑,统计答案。 具体做法:当前跑到二进制第k位,已经确定了比k高的位的数字,使得 阅读全文
posted @ 2019-10-29 16:34 神之右大臣 阅读(576) 评论(0) 推荐(0) 编辑
摘要:题面 这道题由于问最大值最小,所以很容易想到二分,但怎么验证并且如何实现是这道题的难点; 首先我们考虑,对于一个军队,尽可能的往根节点走(但一定不到)是最优的; 判断一个军队最远走到哪可以树上倍增来实现; 但是,这并没有结束,因为可能这颗子树的军队会去另一个军队; 我们先找出所有以根节点的子节点为根 阅读全文
posted @ 2019-10-25 19:30 神之右大臣 阅读(220) 评论(0) 推荐(0) 编辑
摘要:题意:给定一个序列a,求出这个序列的所有无序数对(一共有n*(n-1)/2个)的差的绝对值的中位数 显然,n^2枚举是会TLE掉的,那么我们换一种思路:二分答案; 对于每个答案,我们可以O(nlogn)验证,比较好想; 然后如果常熟大的话还是会TLE,怎么办呢? 那就是把验证复杂度降为O(n) 其实 阅读全文
posted @ 2019-10-24 19:42 神之右大臣 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1.USACO08JAN Telephone Lines 题面 由于问的是最大值最小,所以二分加验证就好了 比较显然的,题干问的是第k+1长的路最短; 那么二分答案是正确的方向; 但是怎么验证? 我们可以将所有边权大于二分的答案的边视为边权是1,否则看成0; 然后从1~n跑最短路,如果答案大于二分的 阅读全文
posted @ 2019-10-10 19:32 神之右大臣 阅读(446) 评论(0) 推荐(0) 编辑
摘要:题面 给大家普及一个知识,只要看到最大值最小或最小值最大等字样就往二分上想吧!然后是正解部分: 我们可以二分答案; 对于每次二分的区间取中间值mid,并对其进行check()判断; 如果所有段的最大值为mid时可以分成m段(注意,如果此时分成的段比m还小,那么也是可行的,因为你可以随便拆拆就能拆成m 阅读全文
posted @ 2019-08-08 09:30 神之右大臣 阅读(311) 评论(0) 推荐(0) 编辑
摘要:题面 正解:一道二分大水题! A:为什么我得不到满分? B : 评测的系统不一样啊! A : 蛤? 正常情况下我们日常练习均使用的是windows系统,在windows下,string 本身是可以存储'\0'字符,'\0'字符只是char 数组的结束符。如果是一个字符一个字符赋值,string 是可 阅读全文
posted @ 2019-07-31 19:43 神之右大臣 阅读(235) 评论(0) 推荐(0) 编辑

欢迎阅读 『二分答案』
有什么问题可以联系神之右大臣哦
点击右上角即可分享
微信分享提示