
基础 —— 二分、三分
基础 —— 二分、三分
c4Lnn
这个作者很懒,什么都没留下…
展开
-
POJ 2886. Who Gets the Most Candies?
链接http://poj.org/problem?id=2886题意nnn 个点的环,从第 kkk 个点开始如下操作:将当前点弹出从当前位置顺时针移动 xix_ixi 个单位设不超过 nnn 的最大反素数为 AAA,求第 AAA 个弹出的点。思路DFS 找出最大反素数,对于每个点 010101 表示是否在环中,前缀和就是当前环中人数。每次二分前缀和找当前要弹出的点,前缀和用树状数组维护。代码#include <cstdio>#include <algorit原创 2021-04-07 21:59:39 · 234 阅读 · 1 评论 -
POJ 2828. Buy Tickets
链接http://poj.org/problem?id=2828题意有 NNN 个人排队,每一个人都有一个权值 valvalval ,每一个人都会按顺序插入到当前队伍的某一个位置 pospospos。要求按队伍最后顺序输出权值。思路从最后一个操作开始插入,每次插入即为最终位置,在插入的位置前还要留 pospospos 个空位子。用树状数组维护空位子,二分查找插入位置。代码#include <cstdio>#include <iostream>using name原创 2021-03-31 17:09:55 · 163 阅读 · 0 评论 -
The 2019 ICPC Asia Shanghai Regional Contest H. Tree Partition
链接https://ac.nowcoder.com/acm/contest/4370/H题意将一个 nnn 个节点的点权树切为 kkk 个树,使每棵树的点权和的最大值最小思路二分答案记 fif_ifi 为节点 iii 与子树权值和从叶子节点向上考虑,如果 fif_ifi 大于答案,则将子节点按照 fff 从大到小切,直到 fif_ifi 小于等于答案如果切了小于 kkk 次,则该答案成立代码#include <bits/stdc++.h>#define SZ(x) (原创 2021-02-09 00:31:57 · 211 阅读 · 0 评论 -
Codeforces Round #560 (Div. 3) F2. Microtransactions (hard version)
链接https://codeforces.com/contest/1165/problem/F2题意需要购买 nnn 个物品,每个物品需要 kik_iki 个每个物品原价为 222 元,打折则为 111 元现在有 mmm 个打折信息,每个信息代表某个物品在某日打折每天能获得 111 元,求买完所有需要的物品的天数思路贪心策略:若该物品为最后一次打折日,则购买二分天数代码#include <bits/stdc++.h>#define SZ(x) (int)(x).size原创 2021-02-06 10:29:43 · 139 阅读 · 0 评论 -
The 2020 ICPC Asia Shanghai Regional Contest D. Walker
链接https://ac.nowcoder.com/acm/contest/9925/D题意线段上有两点以各自速度随意移动,问最少经过多久两点移动的路径能覆盖整段线段思路二分时间考虑如下情况某点能覆盖整段线段左边的点向右移动,右边的点向左移动左边的点向左移动,右边的点向右移动(两点可先向中间移动再折返)都不先向中间移动左边的点先向中间移动再折返,右边的点向右移动右边的点先向中间移动再折返,左边的点向右移动两点都先向中间移动再折返代码#incl原创 2021-02-04 21:54:11 · 596 阅读 · 0 评论 -
牛客练习赛 59 C. 装备合成
链接https://ac.nowcoder.com/acm/contest/4743/C题意AAA 有 xxx 个,BBB 有 yyy 个222 个物品 AAA 和 333 个物品 BBB 可以合成一件装备444 个物品 AAA 和 111 个物品 BBB 可以合成一件装备求最多可以合成多少件装备思路三分设用第一种方法合成的装备为 nnn 件,那么总共合成的装备为:n+min((x−2∗n)/4,y−3∗n)n+min((x-2*n)/4,y-3*n)n+min((x−2∗n)/4,y−3原创 2020-07-29 22:00:27 · 187 阅读 · 0 评论 -
NC 51274. 导弹防御塔
链接https://ac.nowcoder.com/acm/problem/51274题意思路代码#include <bits/stdc++.h>#define SZ(x) (int)(x).size()#define ALL(x) (x).begin(),(x).end()#define PB push_back#define EB emplace_back#define MP make_pair#define FI first#define SE secondusi原创 2020-09-10 20:25:57 · 154 阅读 · 0 评论 -
LibreOJ 2594. 关押罪犯
链接https://www.luogu.com.cn/problem/P1525题意nnn 个点,mmm 条无向边,将所有点分成两个集合,使两个集合里的边权最大值最小思路二分边权将边权大于 midmidmid 的边加入图中判定是否为二分图代码#include <bits/stdc++.h>#define SZ(x) (int)(x).size()#define ALL(x) (x).begin(),(x).end()#define PB push_back#define原创 2020-09-09 16:16:24 · 246 阅读 · 0 评论 -
POJ 2296. Map Labeler
链接http://poj.org/problem?id=2296题意给每个点分配一个正方形,点只能在正方形的上边和下边的中点,每个正方形不能重叠,可以有公共边求正方形的最大边长合法图例思路2 - SAT 问题,每个点在正方形上边和下边两种状态当两点横坐标差大于等于正方形边长或纵坐标差大于等于两倍正方形边长,不用考虑所以只有三种情况纵坐标差大于 000 小于正方形边长纵坐标差大于等于正方形边长小于两倍正方形边长纵坐标差等于 000二分 mmm 建图,判断是否矛盾代码#inc原创 2020-09-09 01:52:52 · 107 阅读 · 0 评论 -
HDU 1816. Get Luffy Out *
链接http://acm.hdu.edu.cn/showproblem.php?pid=1816题意nnn 对钥匙,一对钥匙中用了其中一把另一把就不能用了mmm 扇门,每扇门可以用两把钥匙(选一把即可)解开求按顺序最多能解开多少扇门思路2 - SAT对于 nnn 对钥匙,设 a,ba,ba,b 为一对钥匙选了 aaa 则 bbb 不能选选了 bbb 则 aaa 不能选对于 mmm 扇门,设 a,ba,ba,b 可以解开其中一扇门不选 aaa 则选 bbb不选 bbb 则选 a原创 2020-09-08 03:57:26 · 169 阅读 · 0 评论 -
HDU 3715. Go Deeper
链接http://acm.hdu.edu.cn/showproblem.php?pid=3715题意数组 xxx 为 0∼n0\sim n0∼n 的取值,每个数只有 0,10,10,1 两种取值数组 a,ba,ba,b 取值为 0∼n0\sim n0∼n数组 ccc 取值为 0,1,20,1,20,1,2有 mmm 个不等式,xai+xbi≠cix_{a_i}+x_{b_i}\ne c_ixai+xbi=ci给数组 xxx 赋值,问最多能满足前多少个不等式思路2 - SAT原创 2020-09-05 19:04:00 · 247 阅读 · 0 评论 -
洛谷 P4926. [1007]倍杀测量者
链接https://www.luogu.com.cn/problem/P4926题意有两种约束条件sa≥sb(k−T)s_a\ge s_b(k-T)sa≥sb(k−T)sb<sa(k+T)s_b< s_a(k+T)sb<sa(k+T)现在有 sss 个条件,ttt 个已知点,使 TTT 尽可能大来满足所有条件思路o=1o=1o=1,sa≥sb(k−T)→log(sa)≥log(sb)+log(k−T)s_a\ge s_b(k-T) \right原创 2020-09-03 17:06:18 · 162 阅读 · 0 评论 -
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 L. 动物森友会
链接https://ac.nowcoder.com/acm/contest/5278/L题意有 nnn 个不同的事件,第 iii 个任务需要完成 cic_ici 次,每个事件只会在一周中的特定几天开放,每天只能完成 eee 次事件,求最少几天完成所有事件思路二分天数跑最大流建立源点与 nnn 个事件相连,容量为需要完成该事件的次数,建立汇点与一周相连,容量为天数 ∗e*e∗e,再将事件与一周相连,判断是否满流即可代码#include<bits/stdc++.h>using n原创 2020-08-07 13:19:03 · 294 阅读 · 0 评论 -
EOJ Monthly 2020.7 D. 前缀排序
链接https://acm.ecnu.edu.cn/contest/292/problem/D/题意将一个 nnn 位正整数的所有前缀自由调换顺序并首尾拼接,求拼成的最大正整数对 998244353998244353998244353 取模的结果思路Hash + 二分a+b>b+aa+b>b+aa+b>b+a,aaa 拼在 bbb 前面较大取两个前缀 AAA 和 BBB,设 ∣A∣<∣B∣|A|<|B|∣A∣<∣B∣由于 AAA 是 BBB 的前缀,所以前原创 2020-07-31 11:53:09 · 197 阅读 · 0 评论 -
2019ICPC沈阳网络赛 F. Honk‘s pool
链接https://nanti.jisuanke.com/t/41406题意有 nnn 个水池每天从水最多的水池取出一升水放入水最少的水池问 kkk 天后水最多的水池和水最少的水池的差思路二分可以发现所有水池的水量都趋于平均值移动因此我们可以分别确定最大值和最小值的范围并进行二分答案代码#include<bits/stdc++.h>using namespace std;const int N=5e5+5;int n,k,a[N];bool check1(int m原创 2020-07-30 13:11:45 · 159 阅读 · 0 评论 -
牛客小白月赛 23 C. 完全图
链接https://ac.nowcoder.com/acm/contest/4784/C题意给定一个包含 nnn 个顶点的完全图,可以删掉图中的一些边,但是删掉的边不能超过 mmm 条,问删去边之后的图最多能有几个连通分量思路反过来想,要添加Cn2−mC_n^2−mCn2−m条边,让连通块尽量多形成 n−1,n−2,n−3,...,n−in-1,n-2,n-3,...,n-in−1,n−2,n−3,...,n−i 个连通块能用完的最大边数依次为:1,3,6,...,i(i+1)21,3,6,.原创 2020-07-29 21:42:26 · 149 阅读 · 0 评论 -
牛客小白月赛 23 B. 阶乘
链接https://ac.nowcoder.com/acm/contest/4784/B题意求一个最小的正整数 nnn,使得 n!n!n! 是 ppp 的倍数思路分解 ppp 的质因数,然后二分 1∼p1\sim p1∼p,拥有 ppp 的所有质因数就是 ppp 的倍数n!n!n! 拥有质因数 iii 的个数为:⌊ni⌋+⌊ni2⌋+⌊ni3⌋+...\lfloor\frac{n}{i}\rfloor+\lfloor\frac{n}{i^2}\rfloor+\lfloor\frac{n}{i^3原创 2020-07-29 21:29:14 · 121 阅读 · 0 评论 -
POJ 3273. Monthly Expense
链接http://poj.org/problem?id=3273题意将长度为n的序列分为连续的m段,使每段和的最大值最小,求这个最小值思路求出序列中的最大值,答案肯定大于等于它求出序列和,答案肯定小于等于它二分答案即可代码#include<iostream>#include<algorithm>using namespace std;const int N=1e6+5;int n,m;int a[N];bool check(int x) { in原创 2020-07-28 14:57:38 · 123 阅读 · 0 评论