随笔分类 - 算法-模板
摘要:线段树 链接 维护区间最值 struct node{ int l,r; ll ma,mi; }t[maxn]; ll a[maxn]; int n,m; void build(int p,int l,int r){ t[p].l=l; t[p].r=r; if(l==r){ t[p].ma=t[p]
阅读全文
posted @ 2023-12-22 21:51
lipu123
摘要:RMQ(ST表查询区间最值) //以查询最大值为例 状态表示: 集合:f(i,j)表示从位置i开始长度为2^j的区间的最大值; 属性:MAX 状态转移: f(i,j)=max(f(i,j-1),f(i+(1<<(j-1)),j-1)); 含义:把区间[i,i+2^j],分成两半,[i,i+2^(j-
阅读全文
posted @ 2023-12-17 21:36
lipu123
摘要:位运算模板 求n的二进制的第k位数字: n >> k & 1 返回n的二进制最后一位1所代表的十进制数:lowbit(n) = n & -n ### 当枚举状态时假设有n个点,每个点有两种状态,那么一共就有2^n个状态,所以可以用位运算来枚举每种方案里面的状态;1~2^n-1里面的所有的数都可以作为
阅读全文
posted @ 2023-12-17 21:26
lipu123
摘要:试除法判定质数 bool is_prime(int x){ if(x<2) return false; for(int i=2;i*i<=x;i++){ if(x%i==0){ return false; } } return true; } 筛素数 朴素筛法求素数(埃式筛) int primes[
阅读全文
posted @ 2023-12-17 20:08
lipu123