二分-排序
ID_BePosit
如果今天不比昨天多做一点什么,那么明天还有什么意义。
展开
-
C - 产生冠军 HDU - 简单拓扑
map把字符转化一下数字对应上编号。 统计 如度为一的点。只有入度为一得点唯一的情况才是正确的拓扑序列, #include<bits/stdc++.h>using namespace std;#define maxn 1006map<string,int>mmp;string one,two;int t,cnt=1,in[maxn]= {0};bool...原创 2018-08-14 15:57:05 · 313 阅读 · 0 评论 -
E - Plants vs. Zombies ZOJ - 4062 -二分(最小值最大化)
E - Plants vs. Zombies ZOJ - 4062 题意:机器人走过一个花,可以给那个花浇水,给定步数下,问花的最小的最大能量值 思路:最大化最小值常见二分类型。直接二分答案,然后从前往后计算每个点满足答案要多少次。 我们跟它右边那个反复跳即可。这样的话每一次check先预处理出实际应该遍历这个点几次, 到达一个点时先sum++,因为第一次总是要从前面过来的,...原创 2018-11-10 15:36:59 · 391 阅读 · 0 评论 -
I - Swaps and Inversions HDU - 6318 -逆序数
I - Swaps and Inversions HDU - 6318 题意:给你一个长度为n的数列,开始检查,如果某两个数不是从小大大顺序的,有一个就罚x元, 或者也可以直接在检查之前对不符合要求的调换位置(相邻的)花费y元然后要你求最小的花费 思路:所以就是直接求这个序列的逆序数然后乘以x和y花费中较小的一个,逆序数可以归并求解 原理就是二路递归然后合并,正常 两边合并 ...原创 2018-11-16 17:10:29 · 147 阅读 · 0 评论 -
P2680 运输计划 A-二分答案-树上边差分
https://www.luogu.org/problemnew/show/P2680 题意:首先这是一棵n个节点的树,然后对于树上的m条链,我们可以选取树上的唯一一条边使它的边权变为0 求处理后最长链的长度,要求使得最后最长链长度最小,最大值最小问题,二分答案 思路:二分答案肯定是二分的时间,然后关键是预处理与二分的check怎么实现。预处理可以通过LCA 求出树上任意两点 的距离,然后...原创 2018-12-02 15:49:17 · 190 阅读 · 0 评论 -
P1083 借教室-二分答案-差分数组第二弹
https://www.luogu.org/problemnew/show/P1083 小结:差分数组,一般并没有裸的考查,但是差分数组的思想啊,辅助啊,还是比较常用的 思路:二分答案,枚举最多多少订单能够合法。每次检验答案按照差分思想检验判断当前订单数是否超过原来的量 #include<bits/stdc++.h>using namespace std;#define...原创 2018-12-01 10:04:43 · 189 阅读 · 0 评论 -
A - Preparing for Merge Sort CodeForces - 847B -思维
A - Preparing for Merge Sort CodeForces - 847B 题意:给定一个序列 按照 顺序去选 只要这个数严格比上一个数大就可以选,多次进行此操作,直到序列为空 思路:发现规律 每一次新产生的序列的最后一个数一定比上一次产生的小。根据这个特性可以实现可修改数组 并且不改变有序状态,每次可直接进行二分查询进行插入 #include<...原创 2018-12-05 16:23:05 · 172 阅读 · 0 评论 -
transform-二分-尺取-贪心
https://ac.nowcoder.com/acm/contest/140/G 题意:在一个数轴上有n个集装箱,第 i 个集装箱的位置为x[i],且在集装箱内装有a[i]件货物。 现在将这些集装箱内的货物进行移动(将一件货物从第 i 个集装箱移动到第 j 个集装箱的花费就为2*abs(x[i]-x[j]) )。 求在总花费不超过T的情况下,最多能将多少货物移动到同一个集装箱内。 思路:...原创 2018-12-18 17:13:25 · 357 阅读 · 0 评论 -
P1316 丢瓶盖-二分答案
P1316 丢瓶盖 题意:陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上。 现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 思路:嗯....明显的最小值最大问题,二分就ok了 #include<bits/stdc++.h>using namespace std;#define ll ...原创 2018-12-06 15:11:14 · 576 阅读 · 1 评论 -
P2571 [SCOI2010]传送带-三分套三分
P2571 [SCOI2010]传送带 题意: 思路 :分析一波发现,当从AB传送带上离开的位置坐标距离A的远近 与最终的时间 是一个单峰函数,同理 在CD上的点也是单峰函数,所以进行三分一下AB上的坐标 ,check时再对CD上的坐标进行三分。 #include<bits/stdc++.h>using namespace std;double ax,ay,bx,by...原创 2018-12-19 21:38:52 · 250 阅读 · 0 评论 -
D - Ice Cream Tower Gym - 101194D -二分答案
题意:给出n个冰淇淋球,做一个冰淇淋需要k个冰淇淋球,并且规定对于上下相邻的两个球, 下面的球的质量大于等于其上面的那个球质量的两倍。 后面一行n个数,给出n个球的质量,问最多能做出多少个冰淇淋? 可以二分,假设能做x个冰淇淋,那么先安排最上面那个球,贪心的思想。 思路:二分答案,可以降低贪心要求 ,不需要知道怎么取最优,只知道 我要造多少个 那么每次都选取最小的去造。 分层去实现,如...原创 2018-12-09 15:31:02 · 222 阅读 · 0 评论 -
P1419 寻找段落 -二分答案-单调队列
P1419 寻找段落 题意:给定一个长度为n的序列a_i,定义a[i]为第i个元素的价值。现在需要找出序列中最有价值的“段落”。 段落的定义是长度在[S,T]之间的连续序列。最有价值段落是指平均值最大的段落, 段落的平均值=段落总价值/段落长度。 思路:我们将a全部减去mid,问题转化为判断是否存在一个长度在s~t范围内的区间它的和为正。 如果有说明还有更大的平均值。用前缀和单调队列维...原创 2018-12-18 17:13:43 · 431 阅读 · 0 评论 -
Assemble UVALive - 3971 -二分答案(最小值最大化)
Assemble UVALive - 3971 题意:你有b块钱,想要组装一台电脑。给出n个配件格子的种类,品质因子和价格, 要求每种类型的配件各买一个。总价格不超过b,且品质最差的配件的品质因子尽量大。 思路:求出单个的最大值,这是二分答案的上界,0为下界,求一个最小值的最大化 所以只要check满足就要把L去接近R,最后输出第一个不满足的前一个 #inclu...原创 2018-11-10 11:36:27 · 310 阅读 · 0 评论 -
Monthly Expense OpenJ_Bailian - 4135 -二分答案-(最大值最小化)
Monthly Expense OpenJ_Bailian - 4135 最大值最小化: 我们假设x为最小的最大值,那么x-1是不满足条件的,x+1是满足条件的。但他不满足最小, 假设我们左边界是L,右边界是R,我们二分一个答案ans,ans为第一个满足条件的数 题意:共n个月,给出每个月的开销.将n个月划分成m个时间段,求m个时间段中开销最大的时间...原创 2018-11-10 10:11:34 · 230 阅读 · 0 评论 -
D - 逃生 HDU - 4857-逆向拓扑
D - 逃生 HDU - 4857 【题意】 有n个人,m个优先级a,b 表示a优先于b,并且每个人有个编号的优先级,输出顺序。 【分析】 编号最小的节点要尽量排在前面;在满足上一个条件的基础上,编号第二小的节点要尽量排在前面;在满足前两个条件的基础上,编号第三小的节点要尽量排在前面……依此类推。(注意,这和字典序是两回事,不可以混淆。) 不是字典序,自然...原创 2018-08-14 19:17:20 · 232 阅读 · 0 评论 -
K - Reward -拓扑反向-分层次
K - Reward HDU - 2647题意:每一层reward 都得比下一层高1所以先找最低层初始化。#include<bits/stdc++.h>using namespace std;#define maxn 10005vector<int>mmp[maxn];int n,m,in[maxn],u,v,cost[maxn],...原创 2018-08-15 10:24:48 · 197 阅读 · 0 评论 -
M - 确定比赛名次 -拓扑-小顶堆.
编号最小的节点要尽量排在前面;在满足上一个条件的基础上,编号第二小的节点要尽量排在前面;在满足前两个条件的基础上,编号第三小的节点要尽量排在前面……依此类推。(注意,这和字典序是两回事,不可以混淆。) 不是字典序,自然不能每次优先队列优先最小编号出队。 与前面一个题不同 。必须只能在同一个层次内进行排序而不能只关注 每一天关系线路的制约问题。 建立小顶堆。 #inclu...原创 2018-08-15 10:58:08 · 175 阅读 · 0 评论 -
L - Legal or Not -topo-判断存在关系环
L - Legal or Not HDU - 3342 #include<bits/stdc++.h>using namespace std;#define maxn 150vector<int>mmp[maxn];int n,m,in[maxn],u,v,ans;void topo(){ queue<int>q; ...原创 2018-08-15 21:27:56 · 161 阅读 · 0 评论 -
H - Cow Contest-传递关系-Floyd
H - Cow Contest POJ - 3660 题意: n 头牛 之间进行编程竞赛 , 按照技能水平的高低决胜负,水平高的获胜,给出 m 组 比赛结果(每组结果分别是两头牛进行比赛(A 和 B) 胜利的放在前面 (A))问有多少头牛可以确定 能力水平 。 思路: 如果可以确定一头牛的技能水平 则 这头牛 必须和其他牛 直接或者间接(通过其他牛) 的存在胜负关系 ...原创 2018-08-18 08:46:48 · 164 阅读 · 0 评论 -
G - Sorting It All Out -n次拓扑唯一序
G - Sorting It All Out POJ - 1094 题意:好像就是先告诉你他要用26个字母的前n个字母,然后给你m条对这n个字母的限制,每一条限制这n个字母其中的两个的先后关系,问你通过这些限制条件能不能确定这n的字母的序列。注意:当存在冲突或者拓扑排序成功时,之后的输入不对结果造成影响。 A<B即可以理解成存在边A-B。n个点组成的图,给你m条边。问你该图是...原创 2018-08-18 11:09:20 · 237 阅读 · 0 评论 -
洛谷P1908-逆序对-归并排序模板
P1908 逆序对 在归并排序过程中如果出现了前面比后面大的情况每次将ansans加上mid-i+1mid−i+1即可得到 最终求出的就是逆序数。 #include<bits/stdc++.h>using namespace std;#define ll long long#define maxn 1008611ll ans,n;int a[maxn],rp[ma...原创 2018-10-13 11:33:12 · 214 阅读 · 0 评论 -
C - Intersections -逆序数-归并排序
C - Intersections Gym - 101853C 题意:1-n的两个排列分别在两行上,相同的数连线求线的交点数 思路:哈希思想桶标记每个数在第一行的位置输入第二行时把每个位置上的数改为在第一行的位置 #include<bits/stdc++.h>using namespace std;#define ll long long#defi...原创 2018-10-13 11:41:17 · 296 阅读 · 0 评论 -
二分搜索详细简单总结
二分的最基本条件是,我们二分的序列需要有单调性,这里的序列是广义性如: 1.一个排好序的数组; 2.一个区间[L,R),所以下面二分的目标一般有四种ans表示查询的目标: 1第一个大于ans的值。2第一个大于等于ans。3最后一个小于ans。4最后一个小于等于ans。 1.第一个大于等于ans 这就是我们常说的lower_bound()了,这是系统里面自带的库函数,在数组或者一个v...原创 2018-11-10 08:59:14 · 308 阅读 · 0 评论 -
A - Aggressive cows OpenJ_Bailian - 2456 -二分搜索(最小值最大化)
A - Aggressive cows OpenJ_Bailian - 2456 最小值最大化 我们假设x为最大的最小值,那么x-1是满足条件的,但他并不满足最大,x+1是不满足条件的。 假设我们左边界是L,右边界是R,我们二分一个答案ans,ans为最后一个满足条件的数 题意:农民约翰有用C只牛,然后他有N个隔间,每个隔间都有自己的坐标位置(一维的)pos。...原创 2018-11-10 09:31:14 · 386 阅读 · 1 评论 -
B - Fibonacci Sequence URAL - 1133 -二分答案
B - Fibonacci Sequence URAL - 1133 题意: 满足Fibonacci条件的整数序列:Fi+2=Fi+2+Fi (对于一切的i都满足) 。 写一个程序,对给定的i, Fi, j, Fj, n,计算Fn,Fi,Fj是序列中的两个成员 思路:试了一发解方程的,wa可能方程过程中数据爆longlong。 二分枚举 已知的靠左的下一个是谁,然后就可以递推求...原创 2018-12-18 19:18:17 · 185 阅读 · 0 评论