二分
lcxdz
这个作者很懒,什么都没留下…
展开
-
L3-002 特殊堆栈 (30 分) (二分 栈
添加链接描述#include<bits/stdc++.h>using namespace std;vector<int>q;stack<int>st;int main(){ int n; cin>>n; while(n--){ string s; cin>>s; if(s=="Pop"){ if(q.size()){原创 2022-04-21 21:19:42 · 150 阅读 · 0 评论 -
Monster Tower (堆 二分
添加链接描述#include<bits/stdc++.h>using namespace std;#define int long long const int N=2e5+9;int arr[N]; int n,k; priority_queue<int,vector<int>,greater<int>> q;int kill(int mid){ while(q.size()){ int x=q.top();原创 2022-04-12 21:56:00 · 392 阅读 · 0 评论 -
3418. 杨辉三角形 (组合数 规律 数论 二分
添加链接描述可以发现从三角形的左边一定是最先发现的从斜边开始向下递增 斜边的组合数为Ck 2k二分向下寻找 注意组合数b++ a–注意越界#include<bits/stdc++.h>using namespace std;#define int long longint n;int C(int a,int b){ int ans=1; for(int i=a,j=1;j<=b;j++,i--){ //组合数 ans=an原创 2022-04-07 21:40:30 · 372 阅读 · 0 评论 -
1236. 递增三元组 (二分 双指针
添加链接描述二分#include<bits/stdc++.h>using namespace std;const int N=1e5+9;#define int long longint a[N],b[N],c[N];signed main(){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++)cin>>b[i];原创 2022-04-01 15:15:04 · 258 阅读 · 0 评论 -
895. 最长上升子序列 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e3+9;int arr[N];int res[N],tot;int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>arr[i]; } res[++tot]=arr[1]; for(int i=2;i<=n原创 2022-03-31 22:19:15 · 143 阅读 · 0 评论 -
1227. 分巧克力 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+9;#define int long longtypedef pair<int,int> pii;pii arr[N];int n,k;int check(int x){ int ans=0; for(int i=1;i<=n;i++){ ans+=(arr[i].first/x)*(arr[i].se原创 2022-03-31 13:13:19 · 98 阅读 · 0 评论 -
天气预报 (二分 前缀和
添加链接描述#include<bits/stdc++.h>using namespace std;#define int long longconst int N=1e6+9;int n,a,b;int arr[N],brr[N];bool check(int st,int mid){ int pa=arr[mid]-arr[st-1]; int pb=brr[mid]-brr[st-1]; if(pb>=b&&pa>=a)ret原创 2022-03-26 18:37:03 · 159 阅读 · 0 评论 -
1221. 四平方和 (hash
添加链接描述1221. 四平方和题目提交记录讨论题解视频讲解四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输原创 2022-03-25 15:16:22 · 95 阅读 · 0 评论 -
730. 机器人跳跃问题 (思维 二分
添加链接描述二分 trick#include<bits/stdc++.h>using namespace std;const int N=1e5+9;#define int long longint arr[N];int n;bool check(long long mid){ for(int i=1;i<=n;i++){ // cout<<mid<<endl; if(arr[i]>mid){原创 2022-03-25 14:31:41 · 89 阅读 · 0 评论 -
AcWing 3745. 牛的学术圈 I (二分
添加链接描述遇事不决先二分#include<bits/stdc++.h>using namespace std;const int N=1e5+9;int arr[N];int n,L;bool check(int mid){ int a[N]; int o=L; memcpy(a,arr,sizeof a); int p=0; for(int i=1;i<=n;i++){ if(arr[i]>=mid)p++;原创 2022-03-25 13:47:40 · 107 阅读 · 0 评论 -
790. 数的三次方根 (浮点数二分
添加链接描述790. 数的三次方根题目提交记录讨论题解视频讲解给定一个浮点数 n,求它的三次方根。输入格式共一行,包含一个浮点数 n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 6 位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000#include<bits/stdc++.h>using namespace std;const double esp=1e-10;//注意是doubleint原创 2022-03-24 11:19:53 · 237 阅读 · 0 评论 -
789. 数的范围 (二分上下界
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+9;int arr[N];int main(){ int n,q; cin>>n>>q; for(int i=1;i<=n;i++){ scanf("%d",&arr[i]); } while(q--){ int x; cin>原创 2022-03-24 11:11:01 · 114 阅读 · 0 评论 -
瓜瓜选妃 (二维差分 前缀 二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=510,M=1e5+9;int dp[N][N];int sum[N][N],di[N][N];struct node { int a,b,c,d;}t[M];int n,m,q;bool check(int mid){ memset(di,0,sizeof di); for(int i=1;i<=mid;i++){原创 2022-03-20 19:53:05 · 192 阅读 · 0 评论 -
周周的泡泡 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e6+9;#define int long longconst int mod=1e9+7;int arr[N],sum[N];signed main(){ std::ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); int n,h; cin>>n>>h;原创 2022-03-19 18:54:07 · 94 阅读 · 0 评论 -
[NCT058A]签到题(二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e6+9;#define int long longint arr[N];signed main(){// std::ios::sync_with_stdio(0);// cin.tie(0);// cout.tie(0); int n,q; // cin>>n>>q; scanf("原创 2022-03-19 12:20:14 · 164 阅读 · 0 评论 -
T229473 D. 背单词的小智 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;#define int long longconst int N=1e5+5;int arr[N];int n,k;int check(int mid){ int tot=0,num=1; for(int i=0;i<n;i++){ tot+=arr[i]; if(tot>mid){ tot=arr[i原创 2022-03-12 20:08:07 · 455 阅读 · 0 评论 -
疫苗小孩 (二分
添加链接描述枚举第二针从而得到第一针和第三针, 第三针不一定非要打插入正无穷和负无穷处理方便绝对值要考虑k天的小于k天#include<bits/stdc++.h>using namespace std;int n,m;const int N=2e6+10;#define int long longstring s;int p[N];signed main(){ cin>>n; cin>>s; int k,w,q; c原创 2022-02-11 15:52:17 · 197 阅读 · 0 评论 -
兔崽小孩 (前缀和 二分 排序
添加链接描述先把入睡时间排序 二分找到可以入睡的最小位置 前缀和的到睡眠的所有时间#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 9;typedef long long ll;map<int,bool> mp;int arr[N];int num[N],sum[N];int main(){ int n,q; cin>>n>>q; fo原创 2022-02-11 15:21:57 · 359 阅读 · 0 评论 -
幸运数字Ⅱ (二分 dfs
添加链接描述#include <bits/stdc++.h>using namespace std;const int N = 1e4 + 9;#define int long longint num[N], tot;void dfs(int x){ if (x > 5e9) return; num[tot++] = x; dfs(x * 10 + 4); dfs(x * 10 + 7);}signed main(){原创 2022-01-26 12:37:50 · 381 阅读 · 0 评论 -
猴子吃香蕉 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=200;typedef long long ll;#define int long longll ans=0;signed main(){ int n,T; cin>>n>>T; for(int i=1;i<=n;i++){ ll x,y,z; cin>>原创 2022-01-25 22:56:34 · 124 阅读 · 0 评论 -
牛牛的期末考试(排序
添加链接描述用双重vector 先分班从大到小排序好然后逐个判断即可也可以用二分但这题没必要(雾#include <bits/stdc++.h>using namespace std;typedef long long ll;ll mod=1e9+7;const int N=1e3+9;vector<vector<int>> s;int main(){ int n; cin>>n; for(int i=0;i&l原创 2022-01-20 21:11:35 · 287 阅读 · 0 评论 -
小红的数组 (二分 map
添加链接描述二分得到乘积大于k和小于k的范围而等于k的情况可以map记录x的个数 然后O(n遍历 要注意相等的情况-1和结果要除二#include<bits/stdc++.h>using namespace std;const int N=3e5+9;typedef long long ll;#define int long longll arr[N];map<ll,ll>mp;signed main(){ ll n,k; scanf("%lld%lld原创 2021-12-23 11:14:13 · 696 阅读 · 0 评论 -
C. Chat Ban (二分
添加链接描述尤其注意全局变量和局部变量的重复定义#include<bits/stdc++.h>using namespace std;typedef long long ll;ll k,x;ll sum(ll mid){ ll ans=0; if(mid<=k)ans=(1+mid)*mid/2; if(mid>k){ ans=(k-1+k-(mid-k))*(mid-k)/2; // cout<<ans原创 2021-12-06 21:49:01 · 569 阅读 · 0 评论 -
前辈的遗留之物 (二分 log10记得开int
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;ll A,B,X;bool check(ll mid){ ll sum=0; sum=A*mid+B*(int)(log10(mid)+1); // cout<<mid<<"***"<<log10(mid)+1<<"---"<<sum<<endl;原创 2021-11-25 22:35:12 · 428 阅读 · 0 评论 -
C. Slay the Dragon(二分
添加链接描述二分查找 要注意不一定是小于等于的情况 要考虑大于的是否完全满足#include<bits/stdc++.h>using namespace std;const int N=2e5+9;typedef long long ll;ll arr[N];ll sum=0;int T,n;int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%l原创 2021-11-18 13:45:32 · 284 阅读 · 0 评论 -
分组 (二分
添加链接描述她希望人数最多的小组的人尽可能少经典的最小化最大值,肯定要二分(罚抄一百遍#include<bits/stdc++.h>using namespace std;const int N=1e5+9;int arr[N];int mp[N];int n,m;int check(int mid){ int tot=1,group=1; for(int i=2;i<=n;i++){ if(arr[i]!=arr[i-1]||group=原创 2021-11-07 14:08:27 · 64 阅读 · 0 评论 -
CF1479A Searching Local Minimum (二分 交互
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int arr[N];int main(){ int n; scanf("%d",&n); int l=1,r=n; while(l<r){ int mid=l+r>>1; if(arr[mid]==0){ printf("? %d\n",原创 2021-08-27 00:03:10 · 127 阅读 · 0 评论 -
CF1475D Cleaning the Phone(二分枚举
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=2e5+9;typedef long long ll;int n,m;int v1[N],v2[N];ll sum1[N],sum2[N],sum;signed main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m);原创 2021-08-23 21:54:46 · 116 阅读 · 0 评论 -
P4343 [SHOI2015]自动刷题机 (求极小满足 极大满足 二分 模板
添加链接描述#include<bits/stdc++.h>using namespace std;#define Rint register inttypedef long long ll;int qr(){int ret=0,f=1;char ch=getchar();while(!isdigit(ch))f=ch=='-'?-1:1,ch=getchar();while(isdigit(ch))ret=ret*10+ch-'0',ch=getchar();return ret原创 2021-08-23 00:45:03 · 144 阅读 · 0 评论 -
P1083 [NOIP2012 提高组] 借教室 (二分 差分 前缀和
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e6+9;typedef long long ll;ll room[N];struct node { int n,s,t;}t[N];int n,m;ll sum[N],res[N];bool check(int mid){ memset(sum,0,sizeof sum); memset(res,0,sizeof res); for(int i原创 2021-08-22 23:36:13 · 111 阅读 · 0 评论 -
P1314 [NOIP2011 提高组] 聪明的质监员 (二分 前缀和
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int> pii;const int N=2e5+9;pii arr[N],query[N];int n,m;ll sum[N];ll s,res,ok;ll pre_n[N],pre_v[N];bool check(int mid0){ res=0; memset(pre_n,0原创 2021-08-22 23:02:50 · 115 阅读 · 0 评论 -
luogu P1902 刺杀大使 (二分
添加链接描述#include<bits/stdc++.h>using namespace std;int n,m;const int N=1009;int arr[N][N];int vis[N][N];typedef pair<int,int> pii;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};bool check(int mid){ memset(vis,0,sizeof vis); queue<pii>q;原创 2021-08-21 23:55:46 · 172 阅读 · 0 评论 -
luogu P2440 木材加工 (二分 求最大值
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int arr[N];int n,k;bool check(int mid){ long long ans=0; for(int i=1;i<=n;i++){ ans+=arr[i]/mid; } if(ans>=k)return 1; return 0;}int main(){ scanf("%d%d",&原创 2021-08-21 23:32:27 · 62 阅读 · 0 评论 -
2021CCPC华为云挑战赛 卷业务模型分析(三分模板
添加链接描述#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 5;long long A1[N],A2[N],B[N];const double eps= 1e-6;int m;long long fuck(long long k,long long a[]){ long long mx =-1e18,mn=1e18 ; for(int i =1;i<=m;i++) {原创 2021-08-21 23:07:42 · 166 阅读 · 0 评论 -
poj 2018 (二分判定 最大长度不小于L的子段和
Best Cow Fences#include <cstdio>#include <cstring>#include <string>#include <cmath>#include <iostream>#include <algorithm>#include <vector>#include <stack>#include <queue>#include <stdlib.h原创 2021-03-30 20:25:21 · 143 阅读 · 0 评论