https://vjudge.net/contest/317000#problem/F #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf 2147483647 #define P 998244353 #define p(a) putchar…
题意:计算$\sum\limits_{i=1}^n[(p{\cdot }i)\bmod{q}]$ 类欧模板题,首先作转化$\sum\limits_{i=1}^n[(p{\cdot}i)\bmod{q}]=\sum\limits_{i=1}^n[p{\cdot}i-\left\lfloor\frac{p{\cdot}i}{q}\right\rfloor{\cdot}q]$,然后只要能快速计算$\sum\limits_{i=1}^n\left\lfloor\frac{p{\cdot}i}{q}\ri…
// |A| * A- = A* (伴随矩阵) = 逆矩阵 * 矩阵的值 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<ctime> #include<iostream> #include<algorithm> using namespace std; ; ; int a[MAXN][MAXN], b[MAXN][…
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9231    Accepted Submission(s): 2837 Problem Description Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.   In…
/************************************* 求解x^a=b(mod c) x在[0,c-1]上解的个数模板 输入:1e9>=a,b>=1,1e9>=c>=3. 返回:调用xaeqbmodc(a,b,c),返回解的个数 复杂度: 找原根的复杂度很低,所以总的复杂度为O(c^0.5) ************************************/ typedef long long ll; #define HASH_N 100007 str…
求该式子,因为只有里面mod  外面没mod: 所以先是把前面的等差数列求和,然后再减去模掉的部分: 这是类欧几里得模板题 #include<bits/stdc++.h> #define pd putchar(' ') #define pn putchar('\n') #define pb push_back #define fi first #define se second #define f1(i,j,n) for(int i=j;i<n;i++) #define f2(i,j,n…
1.KMP #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int maxn=1e6; ],b[maxn+]; ]; int len1,len2,t; int main() { scanf("%d\n",&t); while(t) { --t; scanf("%s%s",b,a);//a是母串 b是匹配串 l…
学习VFK大神推BZOJ,记录一下学习的东西 1004: burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数,每个置换的置换后等价情况数就是置换后没变的数 模意义下的除法:可以使用乘法逆元解,bx mod p=1,x就是b模P的乘法逆元,呢么x≡1/b(mod p),呢么a/b≡ax(mod p),然后用扩展欧几里得求乘法逆元即可(就是解bx mod p=1,某年NOIPT1) 也可以用费马小定理,(a/b)%p=(a/b)%P * b^(p-1)%p=a%p *…
// poj 1061 青蛙的约会 拓展欧几里得模板 // 注意进行exgcd时,保证a,b是正数,最后的答案如果是负数,要加上一个膜 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; ll gcd(ll a,ll b){…
拓展欧几里得入门题 两个野人若要走到同一个洞穴,设他们走了x步,则p[i]*x+c[i]≡p[j]*x+c[j](mod ans),ans即答案: 移项得到(p[i]-p[j])*X+ansY=c[j]-c[i]; 即aX+bY+=C的形式,枚举ans,n^2的枚举每一个野人,用ex_gcd求得最小解,看X是否在他们的生命时间内. /************************************************************** Problem: 1407 User:…
看黄学长的代码才写出来的,sro_hzwer_orz 原题: 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成…
[BZOJ1477]青蛙的约会(拓展欧几里得) 题面 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是…
数论ex 数学学得太差了补补知识点or复习 Miller-Rabin 和 Pollard Rho Miller-Rabin 前置知识: 费马小定理 \[ a^{p-1}\equiv 1\pmod p,p \ is \ prime \] 二次探测(mod奇素数下1的二次剩余) \[ x^2\equiv 1\pmod p\Rightarrow x=1 \ or \ p-1 \] 如果不是 \(\bmod\) 奇素数,二次剩余可能是更多的值 如果把费马小定理反过来用来检测一个数是否是素数,虽然是错的,…
题目链接:http://poj.org/problem?id=1061 青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 131879   Accepted: 29100 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的…
考试考到自闭,每天被吊打. 还有几天可能就要AFO了呢... Luogu3602:Koishi Loves Segments 从左向右,每次删除右端点最大的即可. [HEOI2014]南园满地堆轻絮 答案一定是 \(\lceil \frac{max_{1\le i < j \le n}(a_i-a_j)}{2} \rceil\). 可以考虑一个二分答案 \(mid\),那么每个数 \(x\) 都是一个 \([x-mid,x+mid]\) 的范围. 当前面有一个 \(y\) 使得 \(y-mid>…
题目描述 给你 n 个盒子,有 q 个操作,操作有两种: 第一种操作输入格式为"1 L R A B",表示将编号为L到R的盒子里的石头数量变为(X−L+1)×A mod B,其中 X为盒子的编号. 第二种操作输入格式为"2 L R",表示查询编号为L到R的盒子里的石头总数. 输入输出格式 输入格式: 第一行有两个数字n(1≤N≤109),q(1≤Q≤50000). 接下来 q行表示询问操作. 输出格式: 对于每个第二种操作,输出石头总数. 输入输出样例 输入样例#1…
传送门 Sol \((-1)^a=1-2(a~mod~2)=1-2a+4\lfloor\frac{a}{2}\rfloor\) 那么原式变成 \(n-2\sum_{i=1}^{n}\lfloor d\sqrt{r}\rfloor+4\sum_{i=1}^{n}\lfloor \frac{d\sqrt{r}}{2}\rfloor\) 考虑计算这样一个东西 \[\sum_{i=1}^{n}\lfloor\frac{a*\sqrt{r}+b}{c}i\rfloor\] 如果 \(\sqrt{r}\)…
TOJ1688: Round Numbers Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone' (also known as 'Rock, Paper, Scissors', 'Ro, Sham, Bo', and a host of other names) in order to make arbitrary deci…
我好菜啊…… 欧拉函数 欧拉函数φ(n),是小于n且和n互质的正整数(包括1)的个数. 性质: 1.对于质数n: φ(n)=n-1 2..对于n=pk φ(n)=(p-1)*pk-1 3.积性函数的性质: 对于互质的m,n,有: φ(n*m)=φ(n)*φ(m) 4.欧拉函数的计算式: φ(n)=n*∏(1-1/pi) 5.求小于n且与n互质的数的和: S=n*φ(n)/2 欧拉定理 对于互质的a,m,有: aφ(m)≡1(mod m) 欧几里得定理 gcd(a,b)=gcd(a,a%b) 扩展…
线段树专题太难了,那我来做数学吧! 但数学太难了,我......(扯 这两天想了做了查了整理了几道数学. 除了一些进阶的知识,像莫比乌斯反演,杜教筛,min25学不会我跳了,一些基础的思维还是可以记录一下. ex_gcd  POJ 1061 青蛙的约会 POJ 2115 C Looooops SGU 106 The equation 三连击. 谈谈理解吧,原理我没懂 (扯 就是通过exgcd求出来的gcd(a,b)=d,而c%d!=0说明无解. 再将a,b,c分别除以公约数d. a/=d,b/=…
本题考点:欧拉降幂 Super A^B mod C Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000). Input There are multiply testcases. Each testcase, there is one line contains three integers A, B and C, separa…
目录 引入 这位老爷子就是康托 基本概念 康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩.设有n个数(1,2,3,4,-,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次. 所以,康托展开是为了把一种全排列压缩成一个整数,它的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的,称为逆康托展开(这篇博客不会讲). 基本原理 我们用a[i]表示位于位置i后面的数小于A[i]值的个数. 公式长这样: \(X=\…
题目链接:洛谷 题目描述:求整数$x\in [a,b]$使得$|2px \ mod \ 2q-q|$最小,如果有多个$x$输出最小的. 数据范围:$1\leq a,b,p,q\leq 10^9$ 第一道类欧的不是模板的题?? 首先一看就尝试一下二分,如何判断$2px \ mod \ 2q \in [l,r]$呢?我们发现 $$[2px \ mod \ 2q \in [l,r]]=\lfloor\frac{2px-l}{2q}\rfloor-\lfloor\frac{2px-r-1}{2q}\rf…
//类欧几里得的模板题 p5170 //求这三个式子: //第一个跟后两个没关联 //后两个跟其余两个都有关联: #include<cstdio> #include<algorithm> #include<math.h> #include<string.h> using namespace std; typedef long long ll; ; ; ; int t; ll n,a,b,c; struct query { ll f; ll g; ll h;…
3526. [NOIP2013模拟11.7A组]不等式(solve) (File IO): input:solve.in output:solve.out Time Limits: 1000 ms Memory Limits: 262144 KB Description 小z热衷于数学. 今天数学课的内容是解不等式:L<=S*x<=R.小z心想这也太简单了,不禁陷入了深深的思考:假如已知L.R.S.M,满足L<=(S*x)mod M<=R的最小正整数x该怎么求呢? Input 第一…
本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a=a)&字操作是二进制同位都为一才为一 这时解法就变成统计每个二进制位上1的次数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include<bits/stdc++.h> #define ll long long using names…
问题背景   孙子定理是中国古代求解一次同余式方程组的方法.是数论中一个重要定理.又称中国余数定理.一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷下第二十六题,叫做"物不知数"问题,原文如下:   有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数.<孙子算经>中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称…
题面看这里 \(PS\):符号 \([\ \rm P\ ]\) 的意义是:当表达式 \(\rm P\) 为真则取值为 \(1\),为假则取值为 \(0\). 题目大意 给你一个一天有 \(H\)​​​​​​​ 小时.一小时有 \(M\)​​​​​​​​ 分钟的表和一个正整数 \(A\)​,问一天内有多少个整数时刻,使得分针与时针的夹角小于等于 \(\displaystyle\frac{2\pi A}{HM}\)​. 题目分析 易知分针转速 \(w_1=\displaystyle \frac{2\…
数位DP........ X mod f(x) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1403    Accepted Submission(s): 599 Problem Description Here is a function f(x): int f ( int x ) { if ( x == 0 ) return 0;…
写诗或者写程序的时候,我们经常要跟欧几里得算法打交道.然而有没要考虑到为什么欧几里得算法是有效且高效的,一些偏激(好吧,请允许我用这个带有浓重个人情感色彩的词汇)的计算机科学家认为,除非程序的正确性在数学上得到了完全严格的证实,否则我们不能认为程序是正确的.既然存在即合理,因此下面我就详细得解说一下欧几里得算法,它为什么是正确的算法(算法过程就不给出了,有了思想,无论是迭代还是循环实现应该都不成问题),为什么有那么好的时间复杂性. 首先还是证明上述命题:注意到证明了该命题就证明了欧几里得算法的正…