![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
Ray.C.L
不开longlong见祖宗
展开
-
Dual Prime(线性筛+前缀和)
思路:这个题在预处理的时候先用线性筛求出1——1e6的素数,然后枚举(O(n^2))所有可能的x,用个桶求存储,然后对桶求个前缀和,最后对给出的区间进行O(1)的查询#pragma GCC optimize(2)#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#i.原创 2020-08-28 18:43:33 · 594 阅读 · 0 评论 -
HDU-Clockwise or Counterclockwise
题意:给出3个点左边判断,按ABC的方向走判断是顺时针还是逆时针。矢量叉积:计算矢量叉积是与直线和线段相关算法的核心部分。设矢量P = ( x1, y1 ),Q = ( x2, y2),则矢量叉积定义为由(0,0)、p1、p2和p1+p2所组成的平行四边形的带符号的面积,即:P × Q = x1y2 -x2y1,其结果是一个标量。显然有性质 P × Q = - ( Q × P ) 和 P × ( - Q ) = - ( P × Q)。一般在不加说明的情况下,本文下述算法中所有的点都看作矢量,两点原创 2020-08-13 17:41:19 · 200 阅读 · 0 评论 -
素数回文 (Miller-Rabin素数测试算法)
朴素算法能过#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#include<queue>#include<stack>#include<bits/stdc++.h>using namespace std;typedef .原创 2020-08-11 23:05:41 · 312 阅读 · 1 评论 -
HDU——6803 Blow up the Enemy(贪心)
题目链接思路:要算出张三的最优胜率,那就是1-张三失败的概率,张三失败的话说明张三他爸拿的最优武器和张三同归于尽,那么这个概论就是(最优武器的数量)/(武器总数量)* 0.5#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#include<queue>原创 2020-08-03 10:57:05 · 242 阅读 · 0 评论 -
素数判断(试除法求质因数)
思路:试除法求素数#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#include<queue>//#include<bits/stdc++.h>using namespace std;typedef long long ll;#de.原创 2020-07-25 14:56:55 · 337 阅读 · 0 评论 -
大水题(简单容斥原理)
思路:我们吧是2 5 11 13的倍数减去就是答案,算 2 5 11 13的倍数总数用容斥原理奇加偶减#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#include<queue>//#include<bits/stdc++.h>usin.原创 2020-07-17 12:28:13 · 227 阅读 · 1 评论 -
牛牛去牛市旅游(并查集+数学)
思路:首先我们看无解的情况,当一个点的度大于等于3或者形成环此时无解(因为每条边只能走一次),然后我们去看有几个联通块,对这n个连通块进行排列组合是n!,之后每个连通块内的点的数量如果大于2那么我们我们就需要选择是从A到B还是从B到A,此时还有乘上2^x(x为点大于1的连通块),我们用并查集去判断是否形成环,和有几个联通块。#include <cstdio>#include <cstring>#include <algorithm>#include <se.原创 2020-07-13 11:37:13 · 343 阅读 · 0 评论 -
Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math(数学)
题目链接思路:偶数直接除2就是他的lcm的最小情况,奇数时求暴力求他因子计算lcm的最小情况#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<vector>#include<bits/stdc++.h>using namespace std;typedef long原创 2020-07-12 10:02:30 · 133 阅读 · 0 评论 -
牛牛的零食(容斥原理)
思路:用一组样例5,6,9 区间1——100答案是 100/8 - 100/lcm(5,8) - 100/lcm(8,6) - 100/lcm(8,9) + 100/lcm(8,6,5) + 100/lcm(8,6,9) + 100/lcm(8,5,9) - 100/lcm(8,5,6,9)容斥原理,奇数个元素加,偶数个元素减。#include <cstdio>#include <cstring>#include <algorithm>#include &.原创 2020-07-07 17:25:35 · 239 阅读 · 0 评论 -
奇妙拆分
思路:从小到大枚举数,如果是因数就除去,看最多有多少个。#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<iostream>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' ')#def.原创 2020-06-14 22:14:00 · 187 阅读 · 0 评论 -
AcWing 889 满足条件的01序列(卡特兰数)
思路:将本题转化为从(0,0)坐标起(n,n)为终点坐标的路径中要求每个点的横坐标要大于纵坐标,这样的路径有几条。其为卡特兰数#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar.原创 2020-05-12 17:02:26 · 308 阅读 · 0 评论 -
AcWing 887组合数3(卢卡斯定理)
思路:用卢卡斯定理一直分解到modp对a,b没有影响#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' ')#define enter putchar('\n')ty..原创 2020-05-11 21:52:26 · 194 阅读 · 0 评论 -
AcWing 886(组合数2)
思路:根据上面的公式我们求出n,m的阶乘再利用逆元即可(逆元有个性质简单说一下(不是很专业)假设x是a的逆元,y是b的逆元那么ab的逆元就是xy)#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define sp..原创 2020-05-11 19:37:56 · 336 阅读 · 0 评论 -
AcWing 885(组合数1)
思路:预处理#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' ')#define enter putchar('\n')typedef pair<int ,in.原创 2020-05-11 19:01:40 · 313 阅读 · 0 评论 -
AcWing204. 表达整数的奇怪方式(中国剩余定理)
推导过程#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' ')#define enter putchar('\n')typedef pair<int ,int&.原创 2020-05-10 12:57:36 · 209 阅读 · 1 评论 -
AcWing878(线性同余方程)
思路:ax=b(mod m)=>ax=my+b 此时令y’=-y得ax+my’=b是不是很眼熟呢,可以用扩展欧几里得做了。此时我们用扩展欧几里得算出d=ax+m*y若此时b是d的倍数那么满足条件反之不满足。#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;.原创 2020-05-09 15:42:15 · 263 阅读 · 0 评论 -
AcWing 877(扩展欧几里得)
思路:裴蜀定理,拓展欧几里得#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' ')#define enter putchar('\n')typedef pair<.原创 2020-05-09 13:14:59 · 158 阅读 · 0 评论 -
AcWing 874. 筛法求欧拉函数
思路:质数ii的欧拉函数即为phi[i] = i - 1:1 ~ i−1均与i互质,共i−1个。phi[primes[j] * i]分为两种情况:① i % primes[j] == 0时:primes[j]是i的最小质因子,也是primes[j] * i的最小质因子,因此1 - 1 / primes[j]这一项在phi[i]中计算过了,只需将基数N修正为primes[j]倍,最终结果为ph...原创 2020-05-08 12:04:16 · 198 阅读 · 0 评论 -
AcWing 873. 欧拉函数
思路:根据公式去写#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putch...原创 2020-05-08 10:37:56 · 222 阅读 · 0 评论 -
AcWing 871(约数之和)
思路:根据这个公式去写#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space pu...原创 2020-05-07 12:48:58 · 302 阅读 · 0 评论 -
AcWing 870 约数个数
思路:一个数可以表示有质因数p1^a1* p2^a2 *…pi^ai这个数约数的个数就可以表示为(a1+1)(a2+1)+…(ai+1)#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>usi...原创 2020-05-07 12:32:48 · 210 阅读 · 0 评论 -
AcWing869(试除法求约数)
思路:和试除法求素数是一样的#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space ...原创 2020-05-07 11:39:38 · 224 阅读 · 0 评论 -
Acwing868(素数筛)
埃氏筛#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define space putchar(' '...原创 2020-05-07 11:22:28 · 173 阅读 · 0 评论 -
AcWing867分解质因数
思路:根据算术基本定理,不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。 n=p1^a1 * p2^a2 *p3^a3 … pn^an 这里有个性质:n中最多只含有一个大于sqrt(n)的因子。#include <cstdio>#include <cstring>#include <algorithm>#include &...原创 2020-05-06 12:07:55 · 378 阅读 · 0 评论