二分
VL——MOESR
ga
展开
-
【2022年10月26日A组】走亲戚【二分】【模拟】
二分+模拟原创 2022-10-26 18:41:08 · 83 阅读 · 0 评论 -
【2022年10月20日A组】反转Dag图【二分】
二分+topu原创 2022-10-21 20:48:31 · 268 阅读 · 0 评论 -
【数据结构练习】平均数【二分答案】【树状数组】
二分答案+树状数组原创 2022-10-19 19:57:35 · 83 阅读 · 0 评论 -
【数据结构训练】取余最长路
set原创 2022-09-26 21:38:38 · 85 阅读 · 0 评论 -
【Luogu_P1462】通往奥格瑞玛的道路【最短路】【二分】
最短路+二分答案原创 2022-09-21 21:40:42 · 80 阅读 · 0 评论 -
【集训DAY3】挖金矿【二分答案】
二分答案原创 2022-08-07 16:27:42 · 95 阅读 · 0 评论 -
【集训DAY3】 Section【贪心】【二分】
贪心+二分原创 2022-07-13 19:16:26 · 73 阅读 · 0 评论 -
【YBTOJ进阶训练指导】删边问题【SPFA】【二分答案】
思路:首先最大值的最小值,二分然后判断单调性,如果考虑删除边,那么最短路不可能变短。如果加入边,最短路不可能变长,因此满足单调性然后就二分删边,然后check(注:最好用dij+堆优化,我用的spfa要特判才能过)codecodecode#include<iostream>#include<cstring>#include<queue>#include<cstdio>#include<algorithm>using n..原创 2022-02-23 20:27:08 · 273 阅读 · 0 评论 -
【YBTOJ进阶训练指导】最小权值【广搜】
思路:最大值的最小值,考虑二分答案二分上限,bfs判断可达性codecodecode#include<iostream>#include<cstdio>#include<queue>using namespace std;int n, m;int a[1010][1010], b[1010][1010];int dx[4]={0, 1, 0, -1};int dy[4]={1, 0, -1, 0};bool check(int maxx..原创 2022-02-10 18:20:00 · 505 阅读 · 0 评论 -
【YBTOJ进阶训练指导】跳石头【二分】
思路:二分答案,然后算出移动石头的个数进行checkcodecodecode#include<iostream>#include<cstdio>using namespace std;int L, n, m;int a[101010];bool check(int l){ int s=0, i=0; while(i<n) { int j=i+1; while(a[j]-a[i]<l&&j<=n) { ..原创 2022-02-10 10:57:43 · 461 阅读 · 0 评论 -
【YBTOJ进阶训练指导】攻击法坛【二分】
思路:二分L考虑check搞出在i用法杖可以到达的最远的法坛j,然后dp从上一个最远的法杖+1开始使用,然后转移codecodecode#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n, r, g;int a[2010], p[2010], q[2010], f[2010][2010];..原创 2022-02-10 10:41:49 · 494 阅读 · 0 评论 -
【YBTOJ进阶训练指导】最小时间【二分】
思路:直接二分答案然后判断介绍一种STLnth_element()!它可以将地k大的数放在第k位,然后前面全是大于等于它的codecodecode#include<iostream>#include<cstdio>#include<algorithm>using namespace std;long long n, m, s;long long a[1010101], b[1010101], c[1010101];bool check(..原创 2022-02-09 19:00:09 · 186 阅读 · 0 评论 -
【YBTOJ进阶训练指导】喂养宠物【二分】
思路:二分答案,然后直接判断codecodecode#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n, a[101010], b[101010], totl;int c[101010];bool check(int m){ for(int i=1; i<=n; i++) c[i]=a[i]+(m-1)*b[i]; sor..原创 2022-02-09 18:19:33 · 230 阅读 · 0 评论 -
2021.08.14【NOIP提高B组】模拟 【USACO 2021 US Open, Silver】Acowdemia
思路:用二分枚举答案,然后贪心判断就行codecodecode#include<iostream>#include<algorithm> #include<cstdio>using namespace std;long long n, k, l;long long a[10100100];bool check(long long x){ long long sum=0, sy=k, c=k*l; for(long long i=n; i..原创 2021-08-15 21:00:55 · 327 阅读 · 0 评论 -
2021.08.11【NOIP提高A、B组】模拟 公路修建问题
思路:直接贪心codecodecode#include<iostream>#include<cstdio>using namespace std;int n, m, k;int a[100100], b[100100], c1[100100], c2[100100];int fa[100100];int find(int x){ if(fa[x]==x) return x; return fa[x]=find(fa[x]);}bool c..原创 2021-08-11 15:44:21 · 94 阅读 · 0 评论 -
2021.08.10【NOIP提高B组】模拟 比赛
思路:维护两个前缀和,然后直接求codecodecode#include<iostream>#include<cstdio>#include<algorithm>using namespace std;long long n;long long a[100100], b[100100], sumb[100100], sumb_[100100];int main(){// freopen("D:\\菜鸡咕\\mat6.in", "r", s..原创 2021-08-10 19:31:14 · 65 阅读 · 0 评论 -
2021.08.09【NOIP提高B组】模拟 平均数
思路:首先二分答案,然后将每个数都减去这个平均值,然后做一遍前缀和,这时维护一个min,使它长度合法,然后一减判断是否大于0codecodecode#include<iostream>#include<cstdio>using namespace std;int n, k;double b[1001000], a[1010000], ans;bool check(double m){ for(int i=1; i<=n; i++) b[i]=..原创 2021-08-10 07:27:11 · 52 阅读 · 0 评论 -
2021.08.09【NOIP提高B组】模拟 最长公共回文子序列
思路:首先在b串里选,使它直接构成一个回文串,然后在A串里二分查找位置就行codecodecode#include<iostream> #include<cstdio>using namespace std;string s, ss;int ans, tot, n, m;int f[27][100000];void dfs(int l, int r, int sl, int sr, int len){ // cout<<l<<..原创 2021-08-10 07:25:07 · 83 阅读 · 0 评论 -
2021.07.14【NOIP提高B组】模拟 软件公司
思路:想到DP,但超时考虑二分答案,设f[i][j]表示到i个人,共完成j项1,最多可以完成多少项2codecodecode#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n, m;int x[10100], y[10010];int f[300][300];bool check(int time){ memset(f, 128, s..原创 2021-07-14 21:55:23 · 39 阅读 · 0 评论 -
【YBTOJ】与众不同
思路:last[i]表示上次i出现的位置p[i]表示这个序列的起始位置显然长度=i-p[i]+1然后对于一个区间l~r,把它分为两部分,一部分可以直接求出答案,表明p[i]<l,另一部分要求最大长度显然二分可以得到最大值就用ST表codecodecode#include<iostream>#include<cstdio>#include<cmath> using namespace std;int inf=1e6+1;int la..原创 2021-05-27 17:18:30 · 104 阅读 · 0 评论 -
【YBTOJ】子正方形
思路:直接四重循环枚举右下角,然后二分长度hash判断codecodecode#include<iostream>#include<cstdio>using namespace std;unsigned long long mod1=1000000007ull, mod2=1000000009ull;int n;unsigned long long hasha[100][100], hashb[100][100];unsigned long long p1..原创 2021-03-06 11:07:37 · 86 阅读 · 0 评论 -
【YBTOJ】单词背诵
思路:我们先把要背诵的单词存下hash,然后在去第二个单词数列里去寻找然后我们考虑一段区间,将这段区间里的单词背下来,如果发现背多了,那么就从左一次减少区间长度最后找到最短的就行了codecodecode#include<iostream>#include<cstdio>#include<algorithm>using namespace std;unsigned long long mod=131;int n, m;struct node..原创 2021-03-05 21:30:51 · 75 阅读 · 0 评论 -
【YBTOJ】最大均值
思路:这题我们可以考虑二分二分平均值,然后check的是当前平均值是否在序列中合法先把当前序列全部减去平均数,这样问题就转化成了求是否有长度大于L的和非负子序列我们枚举到当前这一位时,会发现可以在i-L之前任意一处断开,所以肯定要越大越好,求一个min(前缀和最小,因为设断开处为j,那么和就为s[i]-s[j],如果要最大,就要使s[j]最小)然后问题就解决了codecodecode#include<iostream>#include<cstdio>using..原创 2021-01-02 18:41:35 · 90 阅读 · 0 评论 -
【YBTOJ】防具布置
思路:我们来二分当前位置上之前有多少个防具,我们发现如果当前位置防具是奇数,那么奇数防具一定在这个位置之前,偶则反之。有了这个东西,我们就可以很好的二分了。(在求防具数量时,只需要O(n)O(n)O(n)的时间复杂度就行了)codecodecode#include<iostream>#include<cstdio>using namespace std;long long t;long long n;long long s[1000010], e[10000..原创 2020-12-26 16:30:53 · 98 阅读 · 0 评论 -
【YBTOJ】数列分段
思路:这题看到最大值最小,就想到用二分二分答案,每次check一下即可codecodecode#include<iostream>#include<cstdio>using namespace std;long long n, m;long long ans;long long a[1000100];bool check(long long k){ long long s=1, sum=0; for(long long i=1; i<=n; i+..原创 2020-12-26 14:56:45 · 78 阅读 · 0 评论 -
T145305 【2020.8.24NOIP模拟赛】选数排列
思路:我们看到最大值的最小值,考虑用二分枚举可能达到的F值,然后判断怎样判断呢我们考虑当行中最大值-最小值大于二分答案时,我们就多枚举一行来记录最后只要判断下行数有没有大于r就行了#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>#include<stack>#include<map&g..原创 2020-08-24 16:06:30 · 110 阅读 · 0 评论