- 博客(10)
- 收藏
- 关注
原创 【板子】欧拉函数
例题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 156
原创 I - Assigning to Classes CodeForces - 1300B
I - Assigning to ClassesReminder: the median of the array [a1,a2,…,a2k+1] of odd number of elements is defined as follows: let [b1,b2,…,b2k+1] be the elements of the array in the sorted order. Then median of this array is equal to bk+1.There are 2n stude
2020-07-11 18:31:23 177
原创 H - Non-zero CodeForces - 1300A
H - Non-zeroGuy-Manuel and Thomas have an array a of n integers [a1,a2,…,an]. In one step they can add 1 to any element of the array. Formally, in one step they can choose any integer index i (1≤i≤n) and do ai:=ai+1.If either the sum or the product of al
2020-07-11 18:22:34 171
原创 欧拉筛板子
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 313
原创 HPU算法协会公开课第二期: 【基础算法2】(快速幂+二分)
HPU算法协会公开课第二期: 【基础算法2】(快速幂+二分)快速幂板子二分查找模板A - Pseudoprime numbersFermat’s theorem states that for any prime number p and for any integer a > 1, ap = a (mod p). That is, if we raise a to the pth power and divide by p, the remainder is a. Some (but not
2020-05-25 19:59:05 1963
原创 尺取法
尺取法的整个过程分为4部:1.初始化左右端点2.不断扩大右端点,直到满足条件3.如果第二步中无法满足条件,则终止,否则更新结果4.将左端点扩大1,然后回到第二步返回的推进区间开头和结尾,求满足条件的最小区间的方法称为尺取法。参考博客:尺取法枚举区间:尺取法 — 详解 + 例题模板(全)例:Poj3061题意:给定一个序列,使得其和大于或等于S,求最短的子序列长度。分析:首先,序列都是正数,如果一个区间其和大于等于S了,那么不需要在向后推进右端点了,因为其和也肯定大于等于S但长度更长,所以
2020-05-25 19:04:01 166
原创 二分查找模板
算法思路:假设目标值在闭区间[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 123
原创 快速幂板子
快速幂:首先,快速幂的目的就是做到快速求幂,假设我们要求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 560
原创 HPU算法协会公开课第一期:【基础算法1】(STL 自定义sort 前缀和差分)
传送门(:https://vjudge.net/contest/374040#overview)A - 前m大的数还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列
2020-05-17 22:08:06 1225
原创 19级算法训练赛第七场
19级算法训练赛第7场A - 程序设计:合并数字蒜头君得到了 n 个数,他想对这些数进行下面这样的操作,选出最左边的相邻的差的绝对值为 1 的两个数,只保留较小的数,删去较大的数,直到没有两个相邻的差的绝对值为 1 的数,问最多可以进行多少次这样的操作?输入格式输入第一行为一个整数 n(1 \leq n \leq 10^5)n(1≤n≤10 5),表示数字的总数第二行为 n个整数 x_1,x_2,…,x_n(0 \leq x_i \leq 10^9)x 1 ,x 2,…,x n (0≤x i ≤1
2020-05-14 22:41:50 4480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人