
ACM_二分
文章平均质量分 79
逍遥丶綦
这个作者很懒,什么都没留下…
展开
-
分治法或拓扑排序 poj1463 Strategic game
刚开始以为是覆盖点,,,后来才发现原来是覆盖边,,汗,错了这么多次我写了两种方法,,其实还可以用二分图匹配写的,,就没写了第一种方法是分治法,,具体是这样的我们设计一个函数,能求出当i为根节点时候的子树中,i放士兵时,整个子树士兵最小数量,以及i不放士兵时,整个子树士兵最小数量那么通过求子树的答案,然后把答案合并到根节点呢设根节点放士兵的最小数量为a,不放士兵的最小数量原创 2015-07-27 11:02:54 · 1008 阅读 · 0 评论 -
贪心+二分 Codeforces609D Gadgets for dollars and pounds
传送门:点击打开链接题意:一个人手上有s卢布,他要在n天内买m样东西中的k样样例第二行是多少卢布换一美刀,第三行是多少卢布换一英镑然后接下来是m样东西,告诉你每样东西用什么货币结账(1是美刀,2是卢布),以及要多少那种外币要求:最早完成买k样的天数,以及输出方案输出第几天买完k样商品,然后k行购买的商品的id,第几天购买的输出任意答案就可以了 一种商品只能购买一次,原创 2015-12-20 21:15:10 · 1109 阅读 · 0 评论 -
最小表示法+hash hdu2609 How many
传送门:点击打开链接题意:有n个串,每个串是一个环,如果通过移动环之后能一样,认为是同一种串。问有多少种串。思路:很明显我们首先要把认为是一样的串变成一样的,比如找到这个串的最小表示法,所以这道题的目的就是为了求最小表示法,然后用hash搞一搞排序然后去重,或者是直接插入到set里面取size都是可以的KMP(复杂度O(n))来搞最小表示法暂时还不会,先挖个坑,我这里还有一种通过二分+原创 2016-03-17 20:05:23 · 1389 阅读 · 0 评论 -
整体二分 hdu5412 CRB and Queries
传送门:点击打开链接题意:两种操作,操作1查询区间第k大,操作2把位置x的值改成y。n,Q思路:整体二分。刚开始以为是在线段树上二分答案,没想到它竟然是对所有的二分答案,还是第一次见到这样的二分方法!说下整体二分的大概思路:首先,按照操作顺序,将所有的查询和修改操作全部加入到数组A中,然后去调用solve函数,L和R其实是数组A的指针,l和r是二分答案的范围之后,取l和r的中点原创 2016-03-31 17:40:59 · 607 阅读 · 0 评论 -
线段树+二分 hdu5649 DZY Loves Sorting
传送门:点击打开链接题意:一个n的排列,然后执行Q次操作,每次操作是对某个区间从小到大排序或者是从大到小排序。最后只查询一次,输出第k个位置当前的数。思路:这道题最特别的地方,就是,只查询了1次,因为这个特点也让这道题有了不同寻常的解法。我们可以直接二分第k个位置的数的大小记为m,然后给初始序列处理一下,把小于等于m的记为0,大于m的记为1之后的排序操作就非常简单了,只需要区间修改原创 2016-03-23 16:27:27 · 1783 阅读 · 0 评论 -
二分 Codeforces633D Fibonacci-ish
传送门:点击打开链接题意:找出最长的斐波那契数列,f0和f1可以是出现的数字里的任何数思路:枚举f0和f1,根据斐波那契的收敛性,我们能顺着去判断出最长有多长,注意要特判掉f0和f1都等于0的情况,不然复杂度会退化到O(n^3)原创 2016-02-28 13:35:26 · 848 阅读 · 0 评论 -
二分 51Nod1686 第K大区间
传送门:点击打开链接题意:定义一个区间的值为其众数出现的次数。现给出n个数,求将所有区间的值排序后,第K大的值为多少。二分第k大的数是多少,设为m,之后的check,只需要计算有多少个区间的众数的次数是>=m的即可这里是枚举区间右端点r,然后通过链表来快速找到最靠近右边的左端点l,使得[l,r]中有数字出现了m次,check的复杂度只有O(n)所以总的复杂度O(nlogn)原创 2016-04-07 20:06:52 · 898 阅读 · 0 评论 -
二分 csu1712 Refract Facts
传送门:点击打开链接题意:告诉你水的折射率,潜艇的深度,飞机的高度,两个的水平距离之差,求角度思路:设飞机到视线进入水面的那个点的垂线距离为m,然后我们就可以根据折射率,列出表达式。这种题目猜都能大致猜出,应该是有单调性,可以二分的,xjb随便先试试l=m,再试试r=m,总有一个是对的23333要注意输出的是角度,所以要把弧度换算成角度输出#include #include原创 2016-03-27 20:19:31 · 679 阅读 · 0 评论 -
二分+2SAT njust1928 puzzle
传送门:点击打开链接题意:小明在玩一个闯关游戏,共n关,必须按顺序通过,每一关会遇到两个数字(可能一样),他要选择其中一个,如果要选的这个数字是他之前选过的就直接过了这关。但是他如果在某一关选了数字X,那就不能在经过另一关时选择数字Y当X+Y=2*n-1时,如果在某一关没有数可选的时候游戏结束,问在闯关游戏中小明最多可以通过几关。思路:2SAT。。每一层,选第1个数字标记为0,选第2个原创 2016-04-26 18:21:01 · 433 阅读 · 0 评论 -
二分+树型 dp hdu5682 zxa and leaf
传送门:点击打开链接题意:一棵树n个点,其中有一些点已经有权值,现在给剩下的点安排权值,使得树中相邻两点的之差绝对值的最大值最小。思路:如果我们首先就想到了二分,那后面很好想了。。直接二分答案,之后check中,我们随便取1个点为根节点,然后从下向上按拓扑序做树型dp。设SL[u]和SR[u]表示节点u能填的数字的范围我们从下往上,然后只要判断是否有交集,即有解,我们就能知道当前答原创 2016-05-14 22:19:00 · 551 阅读 · 0 评论 -
分治法 区间的价值 hdu5696
传送门:点击打开链接题意:给你一个序列,定义一个区间的价值是,这个区间里的最大值乘以最小值。求出所有区间长度对应的最大价值。注意数据为全随机思路:重点是数据全部随机。这道题有了这个条件后,才变成了很多种方法都能做的题,这里我讲下分治法来搞。。我们来约定solve(l,r)来求出区间[l,r]中各种区间长度的最大价值。然后,我们找出[l,r]中的最小值。固定了最小值以后,我们再去原创 2016-05-23 01:27:25 · 2649 阅读 · 1 评论 -
并查集+二分 hnu13433 Dragons
传送门:点击打开链接题意:有N个城市,M条双向边,K条龙。第i条龙在Ci城市,初始有Si个头,如果龙还活着,每一分钟增加Ci个头一个勇士1分钟可以砍一个龙的头,也可以选择移动到当前城市周围相邻的城市去不限定时间的前提下,至少要召集多少勇士,才能把所有的龙全部杀掉勇士的初始位置可以是任意的 思路:这道题出的非常好,但是却一下子很难想。首先,可以想到,这个图可能并不原创 2015-10-05 17:19:02 · 935 阅读 · 0 评论 -
二分+线段树 Codeforces609F Frogs and mosquitoes
传送门:点击打开链接题意: 有n青蛙和m蚊子(n,m蚊子两个参数,位置pj,权值bj只有当xi+ti>=pj时,第i只青蛙才能吃到第j只蚊子。如果第j只蚊子能被多只青蛙吃到,那么xi最小的青蛙会把这只蚊子吃了每次青蛙吃了某只蚊子以后,ti会增加蚊子的bj输出n只青蛙吃的蚊子数,以及最后时候的舌头长度ti蚊子会按照给出的时间顺序出现。思路:我们先来考虑原创 2016-01-02 17:01:15 · 1265 阅读 · 0 评论 -
二维无序LIS ACdream1216 Beautiful People
传送门:点击打开链接题意:告诉你n个人,每个人有个s和b连个值,要求从n个人中选出数量最多的人,使任意两个人(i,j)都有si思路:首先很容易想到DAG模型,但是这题的n其实仔细想想这道题,和普通的LIS还是有不一样的地方的。那就是他的顺序并不是给定的!!什么意思呢,虽说是二维LIS,但是他给出的n个人,并不是必须要递增,而是只要选出一部分,然后排序一下,让他们递增就可以了,其实这就是原创 2015-08-27 14:27:16 · 1201 阅读 · 0 评论 -
RMQ+二分 hdu5289 Assignment
求有多少个区间,区间中的最大值减去最小值首先初始化RMQ枚举左端点,右端点可以在哪些位置呢?对于如果R那么必然有s'>=s,所以,在区间[L,n]中选出右端点R尽量靠右,任然有s因为s具有单调性,所以而已用二分,求区间的极值可以用ST表,这题就可以过了#include#include#include#include#include#include原创 2015-07-21 19:15:06 · 1109 阅读 · 0 评论 -
二分 poj2002 Squares
很有意义的一道二分题题意:给出点,问有多少个正方形因为n很容易就想到枚举正方形的两个点,那么可以通过这两个点可以得到对应的另外两个点,那么如何验证这两个点是否存在呢当然会想到二分。先将坐标读入后排序好,然后用二分查询是否存在就可以了难点:正方形并不一定是平行坐标轴的,可能是斜的,所以如何用两个已知点求得另外两个点呢?这里有个公式可以用来变换 d原创 2015-07-23 19:36:53 · 1620 阅读 · 0 评论 -
二分 poj1905 Expanding Rods
题意:一根细杆受热中间会凸起,问突起的高度思路:二分角度把方程列出来,然后二分就可以了,最后再通过角度求那个凸起的高度就行但是一定要注意精度问题,要么写成R-L>=1e-14,因为是二分角度,所以精度一定要设的很高但是通过精度去判断循环的终点,并不是一个特别好的习惯,要改改成直接二分100次,这样就完美解决了任何题目的精度问题!#include#i原创 2015-07-23 20:20:01 · 926 阅读 · 1 评论 -
二分 hdu2141 Can you find it?
如果枚举A和B,再在C中二分k-a-b必然超时但是看到A和B的数量都只有500个,所以可以先把A,B两个加起来,组成一个新的D然后枚举C,在D中二分k-c,这样复杂度就减少很多了#include#include#include#include#include#include#includeusing namespace std;typedef long原创 2015-07-23 20:27:30 · 805 阅读 · 0 评论 -
分治 hihoCoder1050 树中的最长路
这个模型非常的重要,同样也是非常的经典设solve(u)返回的是以u为根节点的子树中的最长链对于以u为根节点的子树,假如有n个子节点v那么,先求出所有子节点的最长链,答案是什么呢?当然是子节点的最长链+次长链!更新一下答案然后再返回最长链,函数就ok了所以随便确定一个根节点建树,然后求出分治求出所有的子树,再合并出答案,这题就差不多做完了~要注意原创 2015-07-24 12:27:20 · 1098 阅读 · 0 评论 -
二分 hdu5432 Pyramid Split
传送门:点击打开链接题意:给你n个四棱锥,一起放在一个平面上,然后在高度为h的位置,用一个平行平面去切所有的四棱锥,得到上下两部分,使上下两部分体积相等,求h的大小(取整数部分输出)思路:很裸的二分,推出高度为h时四棱锥上部分体积和下部分体积,然后利用二分就可以了,注意可以直接循环一定的次数这样就可以避免精度问题了。还有一个要注意的地方,当h>A[i]时,上部分的体积应该是0,而不是负数,原创 2015-09-12 22:45:54 · 968 阅读 · 0 评论 -
二分 Codeforces591D Chip 'n Dale Rescue Rangers
传送门:点击打开链接题意:前t秒,风速的向量为(vx,vy),t秒后风速的向量变成(wx,wy),刚开始在(x1,y1),要去(x2,y2),飞机速度的最大大小是v,问到达目的地至少需要多长的时间思路:二分时间,那么就能求出风速对飞机位移的影响,那么影响后,现在与目的地的距离求出来,让飞机直行看是否能在时间内到达,就算验证二分是否满足条件了,剩下的二分就行。#include#incl原创 2015-11-02 23:18:56 · 916 阅读 · 0 评论 -
二分 hihoCoder1249 Xiongnu's Land
传送门:点击打开链接题意:沙漠中有许多块矩形水源,水源不相交,问能否找到一根中轴线,使得轴线左边的水源面积大于等于右边的水源面积。在满足两个面积之差最小的情况下,使得轴线靠近右端点思路:只能说当时现场赛的时候太脑残了,。要分两次二分!一次二分是做不到的。第一次二分求出左边面积大于等于右边面积时,使两边之差最小,那么此时左边面积等于多少第二次二分再去让左边面积等于这么多,然后更加靠近右边原创 2015-11-27 12:16:03 · 983 阅读 · 0 评论 -
二分 51Nod1105 第K大的数
传送门:点击打开链接题意:n思路:二分。主要想说,,原来在重复的数的有序数组中二分某个数,只要算一次lower_bound就行了- -。。。。#include#include#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2015-12-28 01:05:49 · 1089 阅读 · 0 评论 -
二分+贪心 Codeforces614D Skills
传送门:点击打开链接题意:n个科目,每个科目最高分为A,现在最多能提高m分。最后权值是两种分数算法之和,第一种算法是达到A分的科目个数*cf,第二种算法是最低分*cm。求提高单科分数之后,最后的权值最大是多少。并打印出方案。思路:枚举达到A分的科目数,然后再二分得到剩下的钱,让最低分最大是多少。首先,肯定要把科目的所有分数排序一次,然后枚举达到满分的科目时,肯定是从大到小去枚举的。原创 2016-01-15 16:31:02 · 1227 阅读 · 0 评论 -
贪心+dp zoj3905 Cake
传送门:点击打开链接题意:n(一定为偶数)块蛋糕,每块蛋糕Alice有一个权值,Bob有一个权值。每一次Alice选择两块蛋糕给Bob看,Bob会选择出他的观点的权值最大的蛋糕,然后Alice拿剩下的那一块,问Alice能获得的最大总权值是多少思路:我们可以发现,Bob的权值最大的那一块,无论如何,一定最后会给Bob。那么我们能发现其中好像存在一点规律。如果我们按照Bob认为的权值从大原创 2015-10-12 15:51:21 · 1172 阅读 · 0 评论