二分法
cervoliu
这个作者很懒,什么都没留下…
展开
-
【USACO题库】3.4.1 Closed Fences闭合的栅栏
题意平面上有按逆时针顺序排好的N个点,给你这些点的坐标。 首先要判断这N个点按顺序连边构成的是否是一个合法的多边形。 一个合法的多边形定义为多边形的边与边互不相交。 然后再给一个点的坐标,求这个点能看到多边形上的哪些边。 如此图: (x,y)为观察者所在的点,能看到 (x1,y1)~(x6,y6),(x6,y6)~(x5,y5),(x4,y4)~(x3,y3)分析判断多边形合法其实就原创 2015-10-09 11:46:01 · 1087 阅读 · 0 评论 -
【JZOJ 3918】 蛋糕
Description今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力。现在Bessie要把蛋糕横的切3刀再竖的切3刀,由于Bessie刀法厉害,所以每个格子蛋糕都是完整的,显然蛋糕会被切成16份,然后Bessie和他的15个朋友们每人拿一份,Bessie比较客气,总是等其他朋友拿完原创 2017-01-31 17:43:53 · 617 阅读 · 0 评论 -
【JZOJ 3887】 字符串查询
Description给定n个字符串和q个询问 每次询问在这n个字符串中,有多少个字符串同时满足 1. 字符串a是它的前缀 2. 字符串b是它的后缀100%数据满足n,q≤50000,字符串长度不超过100,任意两串最长公共前缀和最长公共后缀较短(interesting)Analysis我比赛的思路是将字符串按前缀字典序排序,然后二分出一段区间 那么我们需要统计的就是这段区间内的字符串有多少原创 2017-01-19 20:42:44 · 507 阅读 · 0 评论 -
【JZOJ 4984】 太空飞船
Description Analysis这个数据范围很显然的要分段程序K=2两段越平均越好,直接O(n)扫一遍即可K=3三段越平均越好,我们枚举其中一个等分点,调整另一个等分点(这个可以通过指针移动或二分来实现)。然后我们就有了两个等分点。但是这两个等分点的答案不一定是最优的。所以左边的等分点可能向右移一格。这会造成什么后果呢?右边的等分点会向右移动若干格。这个可以二分搞一波,然后整个过程就是O(原创 2017-02-27 19:56:38 · 737 阅读 · 0 评论 -
【JZOJ 3852】 单词接龙
DescriptionBsny从字典挑出N个单词,并设计了接龙游戏,只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来。 Bsny想要知道在所给的所有单词中能否按照上述方式接龙组成一个单词环(可能是多个),若能,求所有环的环中单词平均长度最大值。100%的数据:n≤100000,每个单词长度不超过1000。输入数据比较大,C/C++的同学用scanf输入。A原创 2017-01-17 22:13:26 · 708 阅读 · 0 评论 -
【JZOJ 4932】 B
Description现在你有N个数,分别为A1,A2,…,AN,现在有M组询问需要你回答。每个询问将会给你一个L和R(L<=R),保证Max{Ai}-Min{Ai}<=R-L,你需要找出并输出最小的K(1<=K<=N,不存在输出-1)满足以下两个条件: ①能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的和在区间[L,R]内。 ②能够在原来的N个数中选出不重复(下标不重复)的原创 2016-12-26 20:40:05 · 571 阅读 · 0 评论 -
经典问题 平均数
Description有一个长度为n的序列,对于所有连续子序列,算出平均数。请求出第k小的平均数是多少。答案保留四位小数。 n<=10^5,k<=n*(n+1)/2,ai<=10^9Analysis没有什么直接做的思路,考虑二分答案,转化为判定性问题。 当前问题是有一个x,要求出有多少个平均数小于x。 考虑给每个数减x,再做前缀和,则问题变成求出逆序对的个数。 我们知道逆序对可以用归并排序或原创 2016-11-09 19:17:21 · 568 阅读 · 0 评论 -
【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
Description Analysis这道题很容易误入歧途:以为每列取平均最大的就是全局最大的。 我这个小doby就掉坑里了。 反例数据: 2 5 1 9 1 1 1 1 1 1 2 1 最优:每列只取一个;贪心:第一列全部取完了。 比赛时后来就方方方,毫无思路。。。 正解二分答案。 以后记住一点:毫无思路的题想想能不能二分转化为判定性问题。 二分答案,如果当前答案可行原创 2016-10-04 22:45:44 · 431 阅读 · 0 评论 -
【JZOJ 4820】 最大化
Description Analysisn^4的方法很好想,枚举答案,判断是否可行。 100分的方法要n^3logn 枚举左右边界,那么我们就可以把中间几列数压成一个数。 问题变成序列上选取连续最长一段使得其和大于0 我们可以做一个前缀和 枚举k,对于起点i,j。若iCode#include<cstdio> #include<cstring> #include<algorithm> #d原创 2016-10-17 19:57:39 · 441 阅读 · 0 评论 -
【JZOJ 4817】【NOIP2016提高组 五校联考4】square
Description Analysis我们可以想到一个DP,f[i][j]表示(i,j)为右下角的最大正方形边长。 则f[i][j]=Min(f[i−1][j−1],f[i−1][j],f[i][j−1])+1f[i][j]=Min(f[i-1][j-1],f[i-1][j],f[i][j-1])+1 那么可以二分答案,在合法范围内找是否有f[x][y]>=mid。 时间复杂度O(Tn2l原创 2016-10-10 22:00:51 · 502 阅读 · 0 评论 -
【JZOJ 4783】 Osu
Description Analysis二分模型很显然,但是具体怎么二分 %%%CTY实数二分碾过 其实正解是把两两点对距离排序在这个数组里二分,这样个数是O(n^2)的。 判定的话可以用一个简单的n^2dp解决 这样大体框架就没了,但是此题巨猥琐卡常数 所以呢,卡常+一堆优化Code#include<cstdio> #include<cmath> #include<cstring> #原创 2016-09-18 19:21:47 · 358 阅读 · 0 评论 -
【JZOJ 4699】 Password
Description Analysis这题比赛时的思路是对的,但是少考虑了一些情况,估了100得了0 其实可以统计一下A数组的每个数出现了多少次,按数的大小排好序。 你可以计算出当前这个数的出现次数,用n^2的时间再计算当前数对后面的数的影响。 至于计算当前的数,解个方程就好了。 具体细节看代码。Code#include<cstdio> #include<cmath> #include<原创 2016-08-15 14:35:07 · 541 阅读 · 0 评论 -
【TJOI & HEOI 2016】【BZOJ 4556】【JZOJ 4614】 游戏
Description Analysis题解法是离线的啊 可是此题可以在线做 先把SA弄出来。 然后对于每个询问,二分答案,转化为判定性问题。 然后,再二分出与suffix(c)的LCP>=mid的左右边界。 问题变成在左右边界中是否能找到[a,b-mid+1]开始的。 这个的话,主席树就好了嘛 O(mlog22n)O(mlog_2^2n)Code#include<cstdio> #原创 2016-07-13 16:40:54 · 474 阅读 · 0 评论 -
【TJOI & HEOI 2016】【JZOJ 4605】 【BZOJ 4552】排序
Description 序列长度为nn,排序次数为mm 100%1≤n,m≤100000100\%1\leq n,m\leq 100000 Time Limits:6000msTime\ Limits:6000msAnalysis此题做法极为机智。 二分出一个数。把>=这个数的数变为1,<这个数的数变为0 按顺序做一遍区间排序,排序直接用线段树区间修改。 升序就0在前1在后,反之则反。原创 2016-07-11 17:02:00 · 404 阅读 · 0 评论 -
JZOJ 4218 【五校联考2day1】补给站
前言此题出现在2016.1.24日的比赛中。当时因为在恶搞第三题,此题又没有想到如何判重,于是此题打完暴力就搁置了。%%%CTY大神~~~题目描述DescriptionWYF为了保证他自己能够吃到足够多的牛排,来补充自己的脑力,所以他建了两个补给站,坐标分别为(ax,ay),(bx,by)。他有n个休息地点,第i个休息地点的坐标是(xi,yi)。每个补给站都有一个补给半径,当一个休息地点在以一个补给原创 2016-01-28 13:13:00 · 813 阅读 · 0 评论 -
tree
Description 给你一棵n个点的树,你需要在树上选择恰好m条点不相交的,点数至少为k的路径,使得路径所覆盖的点权和尽可能大。求最大点权和。数据保证有解。 n&lt;=1.5e5 凸优化+长链剖分 存档题 Code #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&原创 2019-01-10 16:27:17 · 217 阅读 · 0 评论