
数论
文章平均质量分 79
Frozen_Guardian
已退役菜鸡Acmer
展开
-
扩展欧几里得求解ax+by=c的特殊解(模板)
转自:https://www.cnblogs.com/033000-/p/10040183.htmltemplate<class T> void exgcd(T a,T b,T &d,T &x,T &y){ if(!b) {d=a;x=1;y=0;} else {exgcd(b,a%b,d,y,x);y-=x*(a/b);}}//求解二元一次方程 a*x+b*y=c,一组解为x,y,无解则返回falsetemplate<class T&g转载 2020-07-19 13:46:37 · 811 阅读 · 0 评论 -
扩展欧几里得求逆元(模数可以不为质数)
void extgcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b) { d=a; x=1; y=0; } else { extgcd(b,a%b,d,y,x); y-=x*(a/b); }}LL inverse(LL a,LL n){ LL d,x,y; extgcd(a,n,d,x,y); return d==1?(x+n)%n:-1;//返回值为 -1 时说明不存在逆元.原创 2020-05-20 15:22:01 · 1159 阅读 · 1 评论 -
2021年中国大学生程序设计竞赛 女生专场 - 热身赛 Problem C. 口算训练(质因子分解)
题目分析:判断 xxx 是 yyy 的倍数,等价于质因子分解后, yyy 中的每个质因子的出现次数都小于等于其在 xxx 中的出现次数。那么对于每次询问 [l,r,d][l,r,d][l,r,d],实质上就是将 ddd 质因子分解后,判断一下每个质因子在区间 [l,r][l,r][l,r] 中的出现次数。问题转换为了如何快速求解区间内某个质因子的出现次数。因为本题的值域特别小,所以考虑按值域分块,⌊100000⌋=316\lfloor \sqrt{100000} \rfloor=316⌊100000.原创 2021-11-01 18:44:28 · 861 阅读 · 4 评论 -
2021HDU多校9 - 7073 Integers Have Friends 2.0(随机数)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,找到一个长度最长的子序列,满足存在一个模数 mmm,使得这个子序列中的所有数取模后相等题目分析:挺有意思的一道题,首先假如取 m=2m=2m=2 的话,那么所有数字非奇即偶,所以答案至少是 ⌈n2⌉\lceil \frac{n}{2}\rceil⌈2n⌉假如我们随机选两个位置 x,yx,yx,y,满足 x≠yx\neq yx=y,那么这两个位置同时位于答案中的概率至少为 14\frac{1}{4}41,也就是说选不中的概率为 34\f原创 2021-08-17 18:43:36 · 229 阅读 · 2 评论 -
洛谷 - P4245 【模板】任意模数多项式乘法(三模NTT+中国剩余定理/五次FFT的MTT)
题目链接:点击查看题目大意:给出一个长度为 nnn 的多项式 F(x)F(x)F(x) 和一个长度为 mmm 的多项式 G(x)G(x)G(x),求 F(x)∗G(x)F(x)*G(x)F(x)∗G(x),模数任意,值域 1e91e91e9题目分析:如果不取模的话极限情况下会达到 109∗109∗105=102310^9*10^9*10^5=10^{23}109∗109∗105=1023众所周知,NTT 支持值域更大的多项式相乘,但是不支持任意模数。FFT 支持任意模数,但是不支持值域很大的多项式相原创 2021-08-09 21:37:59 · 1044 阅读 · 0 评论 -
洛谷 - P3321 [SDOI2015]序列统计(原根+NTT)
题目链接:点击查看题目大意:给出一个集合 SSS,集合中的数是 [0,m)[0,m)[0,m) 且互不相同的,问从集合中选 nnn 次数字,且乘积对 mmm 取模后等于 xxx 的方案数有多少题目分析:考虑转移方程,我们设 f[i][j]f[i][j]f[i][j] 为选了 iii 个数后,乘积对 mmm 取余后为 jjj 的方案数,那么自然有 f[i+1][j]=∑ab≡j(modm)f[i][a]∗f[i][b]f[i+1][j]=\sum\limits_{ab\equiv j \pmod m}f原创 2021-08-08 13:51:40 · 435 阅读 · 0 评论 -
CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论)
题目链接:点击查看题目大意:给出二维平面上的 nnn 个点,任意选择出三个点可以构成一个三角形,现在问满足下面条件的三角形的个数:三角形面积为整数三角形包含的(不包括边界)整数点为奇数其中所有坐标点的 xxx 和 yyy 都是偶数题目分析:因为所有坐标点都是偶数,所以先猜一波任意三个点都是满足第一个条件的,也就是围成的三角形面积一定是偶数。所以现在问题就转换为了,如何求解满足第二个条件的三角形的个数。赛中经队友提醒,得知了“皮克定理”这一关键的结论,即 S=a+b2−1S=a+\frac{b原创 2021-08-02 20:25:11 · 234 阅读 · 0 评论 -
CodeForces - 1553F Pairwise Modulo(数论+树状数组)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,求 pk=∑1≤i,j≤kai mod ajp_k = \sum_{1 \le i, j \le k} a_i \bmod a_jpk=∑1≤i,j≤kaimodaj题目分析:直接求解比较困难,需要对模型进行两步转换:首先取模运算,等价于 x−x∗⌊yx⌋x-x*\lfloor \frac{y}{x} \rfloorx−x∗⌊xy⌋其次给原式子中的 i,ji,ji,j 规定一个先后顺序,记 sk=∑1≤i,j≤k,i>jai原创 2021-07-23 10:21:25 · 600 阅读 · 0 评论 -
AcWing - 246. 区间最大公约数(树状数组+线段树)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,需要执行 mmm 次操作,每次操作分为下列两种类型:C l r d:将区间 [l,r][l,r][l,r] 位置的数字都加上 dddQ l r:询问区间 [l,r][l,r][l,r] 的最大公约数题目分析:首先是推广一下最大公约数的公式:gcd(a,b)=gcd(a,b−a)gcd(a,b)=gcd(a,b−a)gcd(a,b)=gcd(a,b−a)gcd(a,b,c)=gcd(a,b−a,c−b)gcd(a,b,c)=gcd(原创 2021-07-12 20:00:55 · 189 阅读 · 0 评论 -
牛客 - 牛牛的最大兴趣组(思维+数论)
题目链接:点击查看题目大意:给出 nnn 个数,要求选出最多的数,使得任意两个数的乘积不能是三次平方数,三次平方数,诸如23=8,33=272^3=8,3^3=2723=8,33=27题目分析:这个模型和前两天 cfcfcf 上遇到的一个样:CodeForces - 1497E2这个模型的特点就是,假设要使得任意两个数的乘积不能是 mmm 次平方数的话,当我们将所有的数字中,出现次数为 mmm 的倍数的质因子都筛掉后,剩下的数一定会两两匹配。具体到某个质因子来说,假设其出现次数为 xxx,那么其需要和原创 2021-06-01 14:51:58 · 652 阅读 · 0 评论 -
兰州大学第一届『飞马杯』程序设计竞赛 - ★★平形四边行★★(鸽巢原理+暴力)
题目链接:点击查看题目大意:二维平面坐标系上给出 nnn 个点,现在需要求出四个点,满足四个点可以组成可退化的平行四边形题目分析:因为坐标的范围很小,所以瞬间想到了上周刷到的一道题目的模型:CodeForces - 1501C然后就在纠结平行四边形边长长度的路上走远了赛后一看题解恍然大悟,只要去寻找两对点 (a,b),(c,d)(a,b),(c,d)(a,b),(c,d) 满足中点是同一个点就可以了妙啊因为鸽巢原理,二维平面坐标系上最多有 4e64e64e6 个点,所以每 4e64e64e6原创 2021-05-29 20:28:31 · 206 阅读 · 0 评论 -
CodeForces - 1501C Going Home(鸽巢原理+暴力)
题目链接:点击查看题目大意:给出 nnn 个数,问是否存在四个数满足:a+b=c+da+b=c+da+b=c+d题目分析:官方题解是直接 O(n2)O(n^2)O(n2) 暴力,因为每个数的范围是 [1,2.5e6][1,2.5e6][1,2.5e6] 的,每次匹配即使会产生一个新的 sumsumsum 和,那么因为鸽巢原理,在匹配 5e65e65e6 次后,必定会产生一对 sumsumsum 相同的二元对 (i,j)(i,j)(i,j)。同理在匹配第 4∗5e64*5e64∗5e6 次后,一定会产生四原创 2021-05-26 18:33:41 · 252 阅读 · 0 评论 -
CodeForces - 1497E2 Square-free division (hard version)(dp+数论)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,现在最多可以修改 kkk 个数字为任意数值,现在问最少可以将数列划分成多少个连续的数列,使得每一个单独的段中,任意两个数的乘积都不能是完全平方数,完全平方数是指诸如 1,4,9,16{1,4,9,16}1,4,9,16 等题目分析:先简单说一下 E1E1E1,E1E1E1 就是 k=0k=0k=0 的情况,正因为少了修改,所以直接贪心即可,依据就是,当遍历到 xxx 时,若 xxx 可以和前面一段的数字中的任意一个组成完全平方数,则让 xxx原创 2021-05-26 19:07:57 · 262 阅读 · 4 评论 -
CodeForces - 1512G Short Task(欧拉筛求因子和)
题目链接:https://vjudge.net/problem/CodeForces-1512G题目大意:设 d(n)d(n)d(n) 为 nnn 的约束和,更具体的,d(n)=∑k∣nkd(n)=\sum_{k|n}kd(n)=∑k∣nk现在有 mmm 次询问,每次给出一个 ccc ,需要回答满足 d(n)=cd(n)=cd(n)=c 的最小 nnn题目分析:预处理一下就可以了,屯一个 O(n)O(n)O(n) 求因子和的板子代码:// Problem: G. Short Task// Co原创 2021-05-21 21:00:57 · 280 阅读 · 0 评论 -
CodeForces - 724C Ray Tracing(扩展欧几里得解方程)
题目链接:点击查看题目大意:在 n∗mn*mn∗m 的矩阵中,从点 (0,0)(0,0)(0,0) 发射一个小球,以四十五度的方向出发,速度是 2\sqrt{2}2,当碰到壁时,会进行反射;当碰到底角时,会被吸收。现在给出 kkk 次询问,每次询问需要回答点 (x,y)(x,y)(x,y) 是在什么时间第一次到达,如果无法到达输出 −1-1−1题目分析:模拟也是可以做的,同样也可以从数论的角度去思考考虑将矩形进行平面无限展开后,每一个点 (x,y)(x,y)(x,y) 都可以被表示为 (2∗n∗k1原创 2020-12-28 12:22:57 · 430 阅读 · 0 评论 -
CodeForces - 1055C Lucky Days(数论)
题目链接:点击查看题目大意:给出两个人的幸运日期,问交集最大可以是多少,两个人幸运日期的形式如下:[l1,r1,t1][l_1,r_1,t_1][l1,r1,t1]:[l1+kt1,r1+kt1][l_1+kt_1,r_1+kt_1][l1+kt1,r1+kt1] 是幸运日期,其余日期为不幸运日期[l2,r2,t2][l_2,r_2,t_2][l2,r2,t2]:[l2+kt2,r2+kt2][l_2+kt_2,r_2+kt_2][l2+kt2,r2+kt2] 是幸运日期原创 2020-12-25 16:00:27 · 238 阅读 · 1 评论 -
CodeForces - 504B Misha and Permutations Summation(线段树模拟康托展开与逆展开)
题目链接:点击查看题目大意:给出两个排列 ppp 和 qqq,现在要求输出其中,Prem(x)Prem(x)Prem(x) 是第 xxx 个排列,Ord(p)Ord(p)Ord(p) 是排列 ppp 是第 Ord(p)Ord(p)Ord(p) 个排列题目分析:线段树模拟康托展开参考:https://www.luogu.com.cn/blog/yummy-loves-114514/huoxingren当得出数组 aaa 和 bbb 后分别代表排列 ppp 和 qqq 的康拓展开表达式,虽然得到的是变进原创 2020-12-21 11:16:28 · 231 阅读 · 2 评论 -
CodeForces - 1459C Row GCD(数论+推公式)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数组 aaa,再给出一个长度为 mmm 的数组 bbb,现在要求输出,当 j=1,2,...,mj = 1,2,...,mj=1,2,...,m 时的答案:gcd(a1+bj,a2+bj,...,an+bj)gcd(a_1+b_j,a_2+b_j,...,a_n+b_j)gcd(a1+bj,a2+bj,...,an+bj)题目分析:一个公式 gcd(x,y)=gcd(x,x−y)gcd(x,y)=gcd(x,x-y)gcd(x,y)=gc原创 2020-12-20 13:54:01 · 367 阅读 · 0 评论 -
中石油训练赛 - Switches(高斯消元求逆矩阵+逆矩阵求线性方程组)
题目大意:给出一个 n * n 的布尔矩阵表示开关与灯的关系,现在每个灯来说,是否存在一种开关的集合,使得恰好使得只有当前灯是打开状态,其余灯都是熄灭状态,分别输出方案题目分析:将开关视为变元,将灯视为方程,这样就将问题转换为了求 n 次线性方程组,最朴素的方法就是枚举 n 次常数项,每次都对线性方程组进行求解,可惜这样的时间复杂度是 O( n^4 )考虑优化,设 A 为系数矩阵,X 为未知量矩阵,B 为常数矩阵,则线性方程组转换为了 ,移项可得这样问题就转换为了求出系数矩阵的逆矩阵,然后...原创 2020-12-07 16:24:50 · 312 阅读 · 0 评论 -
HDU - 3364 Lanterns(高斯消元解方程(取模))
题目链接:点击查看题目大意:给出 n 盏灯和 m 个开关,每个开关可以控制多个灯,每次询问给定灯的最终状态,问有多少种情况可以到达题目分析:以开关为变元,灯为方程列出方程组,每次求出有多少个自由元,因为自由元可以开也可以关,所以方案数就是二的幂次代码://#pragma GCC optimize(2)//#pragma GCC optimize("Ofast","inline","-ffast-math")//#pragma GCC target("avx,sse2,sse3,sse4原创 2020-12-07 15:17:30 · 374 阅读 · 0 评论 -
POJ - 2065 SETI(高斯消元解方程(取模))
题目链接:点击查看题目大意:给出一个质数作为 mod,再给出一个字符串,每个字母对应着一个数字:' * ' = 0 ' a ' = 1 ' b ' = 2 ... ' z ' = 26假设字符串长度为 n,题目给出了 n 个线性同余方程需要求解 ... 题目分析:因为未知数和方程组的个数都不是很多,所以直接套上模//#pragma GCC optimize(2)//#pragma GCC optimize("Ofast","inline","-ffast-math")原创 2020-12-07 15:01:41 · 319 阅读 · 0 评论 -
2020CCPC(威海) - Clock Master(数论+分组背包)
题目大意:给出一个数字 n ,要求分解成:a[ 0 ] + a[ 1 ] + ... + a[ m ] = n,( m 没有约束 ),使得 lcm( a[ 0 ] , a[ 1 ] , ... a[ m ] ) 最大,输出这个最大值的对数题目分析:看到 lcm 就可以去思考如何快速求出 n 个数的 lcm,比较简单的一种方法就是将每个数进行质因子分解,对于每个质因子 p 来说,取 n 个数中 p^k[ i ] 的最大值,就是质因子 p 的贡献了,所有质因子的贡献的乘积就是需要求的 lcm所以这...原创 2020-10-26 10:48:27 · 2767 阅读 · 4 评论 -
中石油训练赛 - Molecules(高斯消元解方程)
题目链接:点击查看题目大意:笛卡尔坐标系上给出 n 个点,如果点为 ( -1 , -1 ) 说明该点的位置是不确定的,现在给出 m 个相连接的关系, 规定位置不确定的点会被周围相邻的点拉到平均位置上,题目需要确定出最终每个点的位置题目分析:首先不难看出,x 和 y 是相互独立的,所以我们可以单独处理,因为 n 最大只有 100 ,所以我们可以对于每个位置列出一个线性方程,最后高斯消元直接求解即可大概就是这样的转换,套入模板即可代码:#include<iostream...原创 2020-09-12 10:44:28 · 268 阅读 · 0 评论 -
洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
题目链接:点击查看题目大意:给出一个线性方程组,求解答案题目分析:模板题,挂个模板,时间复杂度是 O( n^3 ) 的,其中 a[ 1][ 1 ] ~ a[ n ][ n ] 矩阵代表 x[ 1 ] ~ x[ n ] 在每个方程中的系数,a[ 1 ][ n + 1 ] ~ a[ n ][ n + 1 ] 代表的是等号右边的 b代码:#include<iostream>#include<cstdio>#include<string>#inclu..原创 2020-09-12 10:20:58 · 259 阅读 · 0 评论 -
CodeForces - 1419E Decryption(质因子分解+构造)
题目链接:点击查看题目大意:给出一个数 n ,现在需要将其所有大于 1 的因子重新排列成一个首尾相接的环,规定每次操作可以在相邻两个位置中加入这两个数的 lcm,问最少需要操作多少次,才能使得环上所有相邻的两个位置都不互质,并输出最初始的排列题目分析:可以将所有的数分为两种情况:n 由两个质数相乘得到,如样例 1 所示,此时直接输出即可,需要一次操作数 其余情况都不需要操作,质因子分解后如下图所示排列即可需要注意的是当质因子的个数为 2 时需要特判一下,不然会出现数字重复使用的情况代原创 2020-09-21 18:50:39 · 937 阅读 · 0 评论 -
SDUT -2605 A^X mod P(数论+思维)
题目链接:点击查看题目大意:给出一个递推式得到 f[ i ] ,现在需要求题目分析:最简单的做法就是 nlogn ,带个快速幂,显然这个题目是不可能这么简单的考虑将幂次化简,设 f[ i ] = x ,又因为 m∈ [ 0 , 1e9 ] ,所以 x ∈ [ 0 , 1e9 ] ,我们可以以 1e5 为分界点分块,得到,显然我们可以 O( 1e5 ) 分别预处理出和,然后就有 了,剩下的就可以 O( n ) 计算得出答案了代码:#include<iostream...原创 2020-09-06 19:44:45 · 210 阅读 · 0 评论 -
洛谷 - P4783 【模板】矩阵求逆(高斯消元求逆矩阵)
题目链接:点击查看题目大意:给出一个 n * n 的矩阵,求出其逆矩阵,mod 为 1e9 + 7,若不存在输出No Solution题目分析:囤个模板,原理就是,初始时在原矩阵右侧设置一个单位矩阵,随着原矩阵进行高斯消元的过程,单位矩阵也跟随进行一系列的变换,当原矩阵变为单位矩阵时,单位矩阵也就变成了逆矩阵,符号语言就是:代码:#include<iostream>#include<cstdio>#include<string>#include&.原创 2020-08-28 11:05:48 · 409 阅读 · 0 评论 -
牛客多校9 - Groundhog Chasing Death(质因子分解+思维)
题目链接:点击查看题目大意:给出 a , b , c , d , x , y ,求题目分析:因为涉及到了 gcd 的乘积运算,那么易知不同质因子的贡献是相互独立的,首先我们就可以先将 x 和 y 进行质因子分解,那么对于质因子 p 来说,设 cntx[ p ] 为 p 在 x 中出现的次数,cnty[ p ] 为 p 在 y 中出现的次数,不难看出,需要这两个数同时大于 0 才有贡献,如果其中一者为 0 的话,那么其表示的质因子就是 p^0 = 1 ,gcd 求出来显然也就是 1 了,对答案没有贡献原创 2020-08-09 01:22:39 · 393 阅读 · 0 评论 -
洛谷 - P6178 【模板】Matrix-Tree 定理(矩阵树定理模板题)
题目链接:点击查看题目大意:给出一张 n 个点 m 条边组成的图,可能是有向图也可能是无向图,定义生成树的权值为所有边权的乘积:如果是无向图,求所有生成树的权值之和 如果是有向图,求所有以点 1 为根的外向树的生成树权值之和题目分析:在有向图中是要求以点 1 为根的外向树,所有可以直接删掉第一行和第一列求解,有向图的外向树是需要维护入度,这个别弄混了代码:#include<iostream>#include<cstdio>#include<stri.原创 2020-08-07 04:06:34 · 422 阅读 · 0 评论 -
HDU多校6 - 6836 Expectation(矩阵树定理+高斯消元求行列式)
题目链接:点击查看题目大意:给出一张由 n 个点和 m 条边组成的无向图,对于任意一个生成树,其权值为 n - 1 条边的边权进行二进制的 and 运算,现在需要在图中任意选择一个生成树,问期望权值是多少题目分析:需要对题意进行转换,根据期望的公式 E( aX + bY ) = aE( X ) + bE( Y ) ,又因为 and 运算对于每一位都是相互独立的,所以拆位然后单独讨论首先求出来 sum 为原图中有多少个生成树,对于二进制的每一位 i 来说,令所有第 i 位为 1 的边建图,对于这张原创 2020-08-07 03:55:49 · 346 阅读 · 0 评论 -
矩阵树 Matrix-Tree 定理实现模板(高斯消元求解行列式)
大佬1博客:https://www.cnblogs.com/zj75211/p/8039443.html大佬2博客:https://www.cnblogs.com/yangsongyi/p/10697176.html三个定理:给出无向图,求这个图的生成树个数 给出有向图和其中的一个点,求以这个点为根的生成外向树个数 给出有向图和其中一个点,求以这个点为根的生成内向树个数对于上述三个定理,首先都是需要构造基尔霍夫Kirchhoff矩阵,构造方法如下:基尔霍夫Kirchhoff矩阵 K=.原创 2020-08-07 03:29:12 · 401 阅读 · 0 评论 -
牛客多校4 - Basic Gcd Problem(预处理质因子的个数)
题目链接:点击查看题目大意:给出一个函数,有 t 次询问,每次询问给出相应的参数,要求计算函数值题目分析:打个表不难将函数化简为:,x 为 n 中的质因子个数,而质因子的个数可以 n * sqrt( n ) 暴力去找,当然也可以利用埃氏筛 + dp nlogn 预处理,对于每次询问配合快速幂就能快速求解了代码:#include<iostream>#include<cstdio>#include<string>#include<ctime..原创 2020-07-20 20:06:40 · 385 阅读 · 0 评论 -
牛客多校3 - Fraction Construction Problem(扩展欧几里得)
题目链接:点击查看题目大意:给出 a 和 b ,求解满足条件的 c,d,e,f ,使得: d < b f < b c,e 均为小于等于 4e12 的正整数题目分析:分情况讨论一下,首先如果 a 和 b 可以约分的话,那么直接约分后,输出 a+1 , b , 1 , b 显然就是答案了,如果不能约分的话,且 b 的相异质因子的个数不超过 1 个的话,那么是无解的,证明如下:(来自官方题解)最后一种情况就是 b 的相异质因子个数超过一个,对于这种情况可以将条件 1 的公式转换原创 2020-07-19 13:55:33 · 412 阅读 · 0 评论 -
牛客多校2 - Fake Maxpooling(线性递推gcd+单调队列)
题目链接:点击查看题目大意:给出一个矩阵 A 的大小,规定其元素 A[ i ][ j ] = lcm( i , j ) ,再给出一个 k ,求所有大小为 k * k 的子矩阵中的最大值之和题目分析:题目时限给了三秒,可以直接 n * m * logn 去求出矩阵 A ,但题解提供了一种可以线性求解 gcd 的方法,所以可以优化掉一层 log,在求出矩阵 A 后,可以对于每一行,利用单调队列维护区间最大值,mmax[ i ][ j ] 记录 A[ i ][ j - k ] : A[ i ][ j ]原创 2020-07-14 01:29:11 · 629 阅读 · 0 评论 -
CodeForces - 1366D Two Divisors(数论)
题目链接:点击查看题目大意:给出 n 个数,对于每个数而言,需要找出一个大于 1 的 d1 和 d2 ,满足:gcd( d1 + d2 , a[ i ] ) == 1 d1 和 d1 是 a[ i ] 的因子如果不存在,输出 -1 , -1题目分析:需要证明的一道题目证明参考自:https://www.cnblogs.com/lr599909928/p/13110608.html首先通过 gcd 的性质不难推出两个结论:gcd( a , b ) = gcd( a + b , b原创 2020-06-13 03:05:09 · 426 阅读 · 0 评论 -
美团杯2020 - 平行四边形(原根)
题目链接:点击查看题目大意:蒜斜非常喜欢下围棋。自从AlphaOg面世以来,他就立志一定要研究出AlphaOg的破绽。 终于,他发现当AlphaOg遇到一种特殊局面后,它的神经网络会自动输出“投降”!随着进一步的研究,蒜斜发现这种局面有着更一般的特性,不仅仅局限于固定大小棋盘。 具体来说,当棋盘大小是nn(n+1n+1是一个质数)且棋盘上恰好有nn个棋子的时候,如果这些棋子的位置满足下列条件,那么 AlphaOg 就会直接投降。假设第ii个棋子的位置是点PiPi,处在第xixi...原创 2020-05-18 01:12:47 · 356 阅读 · 0 评论 -
POJ - 1284 Primitive Roots(原根+欧拉函数)
题目链接:点击查看题目大意:给出一个模数 p ,求 p 有多少个原根题目分析:算是补充了一个知识点吧,模数 p 的原根个数为 p[ p[ n ] ] ,p 为欧拉函数证明博客:https://blog.youkuaiyun.com/wust_cyl/article/details/77498757代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#inclu原创 2020-05-13 23:05:15 · 334 阅读 · 0 评论 -
CodeForces - 1350C Orac and LCM(数论)
题目链接:点击查看题目大意:给出 n 个数,先求出两两 lcm 后的集合 t ,再求这个集合 t 的 gcd题目分析:做这个题得知道一个前置知识:对于 lcm 和 gcd 运算来说,每个质因子都相互独立知道这个知识点后,对于每个数先质因子分解,对于某个质因子 p 而言,分三种情况讨论:如果 p 在 n 个数中均出现过,那么找到指数的次小值 k,其贡献就是 p^k 如果 p 在 n - 1 个数中均出现过,那么找到指数的最小值 k,其贡献就是 p^k 如果 p 在 n 个数中的出现次数小于原创 2020-05-13 15:30:39 · 501 阅读 · 0 评论 -
CodeForces - 1333F Kate and imperfection(数论+贪心)
题目链接:点击查看题目大意:初始时有一个 1 ~ n 共 n 个元素的集合,现在需要选出有 k 个元素的原创 2020-04-10 00:20:27 · 247 阅读 · 0 评论 -
CodeForces - 1332B Composite Coloring(数论+构造)
题目链接:点击查看题目大意:给出 n 个合数,每个数不超过 1000 ,现在要求给每个数涂上颜色,使得相同颜色的任意两个数的 gcd 都大于 1 ,现在问在总颜色数不超过 11 种的情况下,构造出一种可行方案题目分析:因为每个数不超过 1000 所以可以考虑质因子分解,又因为每个数都是合数,所以每个数都可以被拆分出至少两个质因子,而第 11 个质数为 31 ,第 12 个质数为 37 ,3...原创 2020-04-01 12:25:51 · 452 阅读 · 0 评论