![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
fyc_kabuto
一个蒟蒻程序员
展开
-
2724: [Violet 6]蒲公英
题目大意:不带修改的区间众数。%%%clj大大:区间众数分块,首先有个重要结论:摘自clj论文。分块做。那么我们就预处理f[i][j],第i块~j块间的众数。每次枚举最左边(右边)的数,与剩下的块的众数(已求出)比较一下谁更多,更新数组。(类似区间dp)至于求区间内x出现次数,可以用数据结构,也可以二分下标求解。int check(int x,int y,i原创 2017-07-12 14:41:24 · 157 阅读 · 0 评论 -
bzoj 2525: [Poi2011]Dynamite
题意:某个点上的引线被点燃后的1单位时间内,在树上和它相邻的点的引线会被点燃。如果一个有炸药的点的引信被点燃,那么这个点上的炸药会爆炸。 求引爆所有炸药的最短时间。题解:二分+贪心。 关键是想到二分,然后就好做了。 变成已知覆盖范围,问至少要多少个点覆盖所有染色点。 显然贪心是对的,不到临界点不点燃。 code:#include<cstdio>#in...原创 2018-03-14 09:49:57 · 204 阅读 · 0 评论 -
bzoj 1014: [JSOI2008]火星人prefix
splay+hash+二分原创 2018-01-01 19:14:24 · 236 阅读 · 0 评论 -
bzoj 5090: 组题
分数规划原创 2017-12-09 20:41:30 · 237 阅读 · 0 评论 -
bzoj 1822: [JSOI2010]Frozen Nova 冰霜新星
题意:WJJ喜欢“魔兽争霸”这个游戏。在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵。我们认为,巫妖和小精灵都可以看成是平面上的点。 当巫妖和小精灵之间的直线距离不超过R,且巫妖看到小精灵的视线没有被树木阻挡(也就是说,巫妖和小精灵的连线与任何树木都没有公共点)的话,巫妖就可以瞬间杀灭一个小精灵。 在森林里有N个巫妖,每个巫妖释放Frozen Nova之后,都需原创 2017-09-29 07:42:47 · 273 阅读 · 0 评论 -
bzoj 3173: [Tjoi2013]最长上升子序列
好题原创 2017-10-19 20:18:30 · 285 阅读 · 0 评论 -
bzoj 1570: [JSOI2008]Blue Mary的旅行
二分+网络流原创 2017-10-19 09:21:53 · 185 阅读 · 0 评论 -
bzoj 1414: [ZJOI2009]对称的正方形
题意:求多少个二维的回文串。题解:向四个方向hash,枚举中间点,分奇偶讨论,二分边长。 unsigned int AC unsigned long long WA是什么鬼。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#define LL unsigned intusing name原创 2017-10-10 08:33:31 · 510 阅读 · 0 评论 -
bzoj 3439: Kpm的MC密码
我的做法大致跟OZY大佬一样。 就是将所有串倒着建入可持久化trie里面,二分答案。 这里有详细点的讲解与其他做法原创 2017-09-19 11:48:28 · 347 阅读 · 0 评论 -
bzoj 2257: [Jsoi2009]瓶子和燃料
题意:在n个数中选k个数,使他们gcd最大。题解:上面的模型转化用裴蜀定理。 我是这么想的,将所有数的因数取出来,插到线段树上,然后找最大的且值大于k的点。 感觉时间空间都要炸。 然而开小空间后跑的飞快。 可能是平均每个数的因数不多吧。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>原创 2017-09-26 21:58:01 · 314 阅读 · 0 评论 -
bzoj 3993: [SDOI2015]星际战争
题解,ozy允许转载。ozy的题解(我们一起想的)原创 2017-09-10 21:25:39 · 360 阅读 · 1 评论 -
bzoj 5008: 方师傅的房子
题意:给一个凸包,判断m个点有几个是否在凸包内。强制在线。题解:将第一个点向其他各点连边,那么就有n-1条线段,组成n-2个三角形。 然后二分那个点在哪个三角形内,通过差积判断左右。 最后再判断是否在里面,注意边界问题。 然后我发现我二分SB了,对于这种可能无解的问题,应该先特判或初值个特殊情况。 code:#include<cstdio>#include<cstdlib>#includ原创 2017-09-05 22:09:34 · 295 阅读 · 0 评论 -
4241: 历史研究
题目大意:区间内出现次数*权值最大的数。与2724差不多:bzoj2724题解主要check的时候返回num*a就行了。卡时卡卡了好几次(雾)code:#include#include#include#include#include#include#include#define LL long longusing namespace std;vector v[原创 2017-07-12 14:52:48 · 297 阅读 · 0 评论 -
codeforces E. Delivery Club
题意:在数轴上有两个人,有不同起点。要按顺序让某一个人访问一些点,问两人最大距离的最小值。题解:首先二分,想办法check最后一定有一个人在ana_nan这个位置,于是可以得到一个区间[an−k,an+k][a_n-k,a_n+k][an−k,an+k],倒着处理,然后对于当前访问的点,假如这个点在这个当前范围内,就用[ai−k,ai+k][a_i-k,a_i+k][ai−k,ai...原创 2018-10-04 10:57:12 · 250 阅读 · 0 评论