【AC Saber】二分
目录
- 数的范围
- 数的三次方根
- 最佳牛围栏
- 特殊排序
数的范围
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N],n,m,x;
int main(void)
{cin>>n>>m;for(int i=0;i<n;i++) cin>>a[i];while(m--){cin>>x;int l=0,r=n-1;while(l<r){int mid=l+r>>1;if(a[mid]>=x) r=mid;else l=mid+1;}if(a[l]==x) cout<<l<<" ";else cout<<-1<<" ";l=0,r=n-1;while(l<r){int mid=l+r+1>>1;if(a[mid]<=x) l=mid;else r=mid-1;}if(a[l]==x) cout<<l<<endl;else cout<<-1<<endl;}return 0;
}
数的三次方根
#include<cstdio>
#include<iostream>
using namespace std;
double n;
bool check(double x)
{if(x*x*x<=n) return true;else return false;
}
int main(void)
{cin>>n;double l=-100,r=100;while(r-l>=1e-8){double mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}printf("%.6lf\n",l);return 0;
}
最佳牛围栏
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N];
double sum[N],n,m;
bool check(double avg)
{for(int i=1;i<=n;i++) sum[i]=sum[i-1]+a[i]-avg;double mina=99999;for(int i=0,j=m;j<=n;j++,i++){mina=min(mina,sum[i]);if(sum[j]>=mina) return true;}return false;
}
int main(void)
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];double l=1,r=2000;while(r-l>1e-7){double mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}printf("%d\n",int(r*1000));return 0;
}
特殊排序
// Forward declaration of compare API.
// bool compare(int a, int b);
// return bool means whether a is less than b.class Solution {public:vector<int> specialSort(int N) {vector<int> res; res.push_back(1);for(int i=2;i<=N;i++){int l=0,r=res.size()-1;while(l<r){int mid=l+r+1>>1;if(compare(res[mid],i)) l=mid;else r=mid-1;}res.push_back(i);for(int j=res.size()-2;j>r;j--) swap(res[j],res[j+1]);if(compare(i,res[r])) swap(res[r],res[r+1]);}return res;}
};
【AC Saber】二分相关推荐
- 【AC Saber】数据结构
目录 单链表 双链表 栈 队列 单调栈 单调队列 KMP 单链表 #include<cstdio> #include<iostream> using namespace std ...
- 【AC Saber】离散化
目录 离散化 离散化 #include<cstdio> #include<iostream> #include<algorithm> #include<map ...
- 【AC Saber】二进制
目录 二进制中1的个数 64位整数乘法 二进制中1的个数 #include<cstdio> #include<iostream> using namespace std; in ...
- 【AC Saber】双指针
目录 最长连续不重复子序列 数组元素的目标和 判断子序列 最长连续不重复子序列 #include<cstdio> #include<iostream> #include< ...
- 【AC Saber】高精度
目录 高精度加法 高精度减法 高精度乘法 高精度除法 高精度加法 #include<cstdio> #include<iostream> #include<cstring ...
- 【AC Saber】归并排序
目录 归并排序 逆序对的数量 超快速排序 归并排序 #include<cstdio> #include<iostream> #include<algorithm> ...
- hdu 2243(poj2778的加强版!(AC自动机+矩阵))
问你长度为1~N的串中包含了模式串的串总共有几个(先求出总共小于L的单词数(26^1+26^2+26^3+...26^L)..然后再减去不包括所给字符串的单词) 答案要模2^64,直接用unsinge ...
- 【codevs3119】高精度开根号(二分答案)
problem 高精度开根号 输入一个数 求平方根 solution 二分答案,如果mid*mid>原数就去找更小的,反之找更大的. 精度小于二忽略不计? 用到高精加,高精乘,加低精,除低精,比 ...
- P2617 Dynamic Rankings 动态区间第K大【树套树】或【整体二分】
传送门 动态区间第KKK大问题,单点修改(这里是第kkk小,即是从小到大第kkk个) 这里还有个区间修改,有点类似的 P3332 [ZJOI2013]K大数查询 分析 树套树 树套树,就是用一种树形结 ...
最新文章
- python爬虫鼠标模拟悬停并点击
- 网页3D效果库Three.js学习[二]-了解照相机
- Scrapy爬虫框架命令行操作
- (转)Linux:使用libgen.h:basename,dirname
- python中异常和错误是一个概念_Python的异常概念介绍以及处理
- b+树的增删改查_考研计算机 | 如何理解m阶B树?
- pytorch---pack_padded_sequence()与pad_packed_sequence()
- 自己搭建Maven项目下运行项目后Eclipse报错:org.springframework.web.context.ContextLoaderListener
- Linux系统编程---消息队列
- 开虚拟机服务器cpu百分之百应该管,为何我在虚拟机里开游戏CPU使用率90--100
- win10安装steam有损计算机,win10系统steam安装更新失败的解决方法
- 运行python.exe文件出现AttributeError: module ‘moviepy.audio.fx.all‘ has no attribute ‘audio_fadein‘
- 路由协议 RIP、IGRP、OSPF和EIGRP 的对比
- 判断设备访问类型是PC端还是WAP端
- HTML在线颜色选择器源码
- QMediaplayer详解以及简易音乐播放实现
- 软考是什么?考哪个科目容易过?
- 微信回应转错帐被拉黑事件 支付宝:我们比较蠢 没法那么洒脱
- 相似度:多边视角:2017:Bilateral Multi-Perspective Matching for Natural Language Sentences
- IDEA版本的Mybatis逆向工程使用攻略