![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
板子
xunber_
这个作者很懒,什么都没留下…
展开
-
【板子】欧拉函数
例题A - RelativesGiven n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that a = xy and b = xz.InputThere are sev原创 2020-08-17 22:16:49 · 132 阅读 · 0 评论 -
欧拉筛板子
const int maxn = 1e7+5;bool vis[maxn];//1是质数,0不是质数 int P[maxn/10],tail;//最后一个质数的下标;void getPrime(int N){//查找1到N之间的质数 for(int i=2;i<N;i++) vis[i]=true; for(int i=2;i<N;i++){ if(vis[i]) P[tail++] = i; for(int j=0;P[j]<=N/i;j++)原创 2020-05-31 21:11:24 · 265 阅读 · 0 评论 -
尺取法
尺取法的整个过程分为4部:1.初始化左右端点2.不断扩大右端点,直到满足条件3.如果第二步中无法满足条件,则终止,否则更新结果4.将左端点扩大1,然后回到第二步返回的推进区间开头和结尾,求满足条件的最小区间的方法称为尺取法。参考博客:尺取法枚举区间:尺取法 — 详解 + 例题模板(全)例:Poj3061题意:给定一个序列,使得其和大于或等于S,求最短的子序列长度。分析:首先,序列都是正数,如果一个区间其和大于等于S了,那么不需要在向后推进右端点了,因为其和也肯定大于等于S但长度更长,所以原创 2020-05-25 19:04:01 · 128 阅读 · 0 评论 -
二分查找模板
算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } return l;}...原创 2020-05-25 18:50:47 · 102 阅读 · 0 评论 -
快速幂板子
快速幂:首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,假设我们要求ab,那么其实b是可以拆成二进制的,该二进制数第i位的权为2(i-1),例如当b==11时a11=a(20+21+2^3) 11的二进制是1011,11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1,因此,我们将a¹¹转化为算 a20*a21a2^3,也就是a1a2*a8,看出来快的多了吧原来算11次,现在算三次那么怎么算呢可以考虑成根据二进制的权值来求解的。那么在关于位运算的部分,我们可以逐位获取b的位,原创 2020-05-25 18:45:00 · 476 阅读 · 0 评论