摘要:
关于二分查找这里记录一下两个函数,即lower_bound(l,r) , upper_bound(l,r) ,分别是求: 1. 大于等于x的第一个位置 2.大于x的第一个位置 //lower_bound() int l_bound(int x,int y,int v){ while(x<y){ in 阅读全文
摘要:
(luogu P1115) 方法1 维护前缀和s[i] ,所求的最大和 为 max{ s[j] - s[i] } , i<j 我们枚举j ,即s[j] 确定,此时只需要 s[i] 最小即可 ,于是维护这个最小值 #include <iostream> using namespace std ; co 阅读全文
摘要:
const int N=1e5+2; int st[N][20],n,a[N]; void init(){ int i,j; for(i=1;i<=n;i++) st[i][0]=a[i]; for(j=1;j<20;j++) for(i=1;i+(1<<j)-1<=n;i++){ st[i][j] 阅读全文
摘要:
该数据结构可以维护序列的前缀和 1. 单点修改,求区间和 #include <iostream> using namespace std; const int N=5e5+2; int n,tr[N]; int lowbit(int x){ return x&-x; } void add(int x 阅读全文
摘要:
并查集路径压缩中,维护某节点到根节点的距离(依题意为abs(x-y)%1000) 即 d[i] +=d[father[i] ] #include <iostream> #include <algorithm> #include <cmath> using namespace std; const i 阅读全文
摘要:
并查集判断图上是否有环 #include <iostream> #include <algorithm> using namespace std; const int N=1e5+4; int fa[N]; int find(int x){ return x==fa[x]?x:fa[x]=find( 阅读全文
摘要:
人跨台阶,每次能跨越的高度最大为D,给了每个台阶的高度,求最多走多高 解: 求一个数组里第一个x , a[x]>D ?处理一个前缀max ,然后查找 #include <iostream> #include <algorithm> using namespace std; const int N=2 阅读全文
摘要:
题目 There are nn chests. The ii-th chest contains aiai coins. You need to open all nn chests in order from chest 11 to chest nn. There are two types of 阅读全文
摘要:
const int M=1e3; const int N=2e3; int c[N][N]; void init(){ int i,j; c[1][1]=1; for(i=0;i<=M;i++) c[i][0]=1; for(i=2;i<=M;i++) for(j=1;j<=i;j++) c[i][ 阅读全文
摘要:
全概率公式 #include <iostream> #include <cstring> #include <iomanip> using namespace std; int main(){ double a,b,c; while(cin>>a>>b>>c){ cout<<setprecision 阅读全文