||_数学数论_||
CaprYang
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 58 (Rated for Div. 2) D. GCD Counting 树形dp 分解质因数
题解题目大意 给你一个n的节点的无向树 每个点都有一个值 问路径上所有节点的gcd>1的最长路径长度考虑2e5内的数字公因数最多7个 2357111317>2e5 素数筛把2e5内所有数字质因子存在vector使用树形dp 自底向上求解 d[i][j]表示使用节点i第j公因子到达叶子的最多顶点 p[i][j]表示使用节点i第j公因子经过i点的最多顶点在DFS回溯后 遍历当前节点...原创 2019-01-17 18:37:54 · 198 阅读 · 0 评论 -
“卓见杯”第五届CCPC中国大学生程序设计竞赛河南省赛 题解
题解使用树状数组查询某个范围内的数值的数量,因为数值比较大需要先进行离散化处理。使用DFS遍历整棵树,当到达某个节点时首先查询区间[a[i]-m, a[i]+m]范围内的数字数量记为last,表示还没到当前子树时已有的数量。将当前节点值加进梳妆数组,因为自身到自身也算。进行递归,回溯后再次查询区间[a[i]-m, a[i]+m]记为now,表示增加了自身子树之后的数量。最后每个点的答案f[...原创 2019-04-13 18:41:12 · 867 阅读 · 2 评论 -
Codeforces Round #553 (Div. 2) 题解
题目链接A. Maxim and Biology取连续一段改为ACTG的最小代价#include <stdio.h>#include <bits/stdc++.h>#define fst first#define sed secondusing namespace std;typedef long long ll;const int INF = 0x3f...原创 2019-04-20 23:12:59 · 1060 阅读 · 2 评论 -
L1-046 整除光棍
题解很容易想到枚举"光棍"的1的数量,判断是否能被x整除,但是不能直接用整形或者long long进行存储,部分答案的光棍很长。在枚举光跟长度i后,用y代表光棍的值,最开始y等于0每次将y = y * 10 + 1总共i次没有溢出就可以得到长度为i的光棍。由于a * b % c == a % c * b % c,所以在求y的过程中每次都对x取模,只要到最后结果为0就说明y可以被x整除。得到...原创 2019-04-03 10:41:56 · 371 阅读 · 0 评论 -
L1-006 连续因子
题解数据量比较小,因子数量不会超过logn,枚举连续因子起点i,连续的因子j。每次检测j是否能整除m累乘的j是否小于等于m。i的枚举只需要到sqrt(n),因为一个数的连续2个以上因子不可能大于sqrt(n)否则乘积比自身还大,总复杂度O(sqrt(n)*logn)AC代码#include <stdio.h>#include <bits/stdc++.h>usi...原创 2019-04-03 00:29:36 · 363 阅读 · 0 评论 -
第九届河南理工大学算法程序设计大赛 正式赛 G. Mo的数学 分解质因子 暴力 | 容斥
题解直接暴力将m和区间[1, n]进行求gcd判断会超时,考虑m和[1, n]是否互质可以转换为m的任意一个质因子知否能整除[1, n]。暴力法:区间[1, n]每个数字尝试除以m的每个质因子如果都无法整除则说明与m互质累乘至答案,复杂度O(Tnlogm)。(数据水了非正解)容斥法:答案为 n! / 每个质因子的倍数 * 两两质因子乘积的倍数 / 三个质因子乘积的倍数… 所有质因子乘积的...原创 2019-04-02 18:03:59 · 248 阅读 · 0 评论 -
牛客练习赛43 F Tachibana Kanade Loves Game 容斥
题解尽量使用只扣敌方血量的武器进行攻击,也就是在[1, n]范围内不是2~m倍数的武器。使用二进制枚举容斥求,注意只求素数的。题目数据保证没有平局情况,最后判断敌方血量减去不是2~m倍数的数量是否大于自身血量。m=1则所有武器都会让自己掉血(不知道是题面写错了还是我理解有问题)。总复杂度O(T*π(m)*2^π(m))。AC代码#include <stdio.h>#incl...原创 2019-04-06 12:00:42 · 245 阅读 · 1 评论 -
Number Sequence HDU - 1005 循环节
题解题目大意,给定一个递推式要求求出递推式的第n项,n <= 1e9。题目是可以用矩阵快速幂直接log复杂度求出,但是麻烦啊。。所以以下代码使用找循环节的方法。递推式由前两项构成,每项都进行%7运算,取模之后范围0~6共7种,前两项最多有7*7=49种组合。所以在49+49个范围内一定能找到循环节(可能是混循环)。递推得到前200项目(少点也行)。枚举循环节开始位置i,循环节终点j,...原创 2019-04-05 01:29:15 · 587 阅读 · 0 评论 -
2016 CSU - 1803 同余定理
题解根据公式a*b%2016==(a%2016)*(b%2016)%2016,可以得出如果a%2016的余数乘b%2016的余数是2016的倍数则a和b相乘满足条件。统计1到n和m范围内对2016取模每个余数出现的次数,枚举1到n内余数为i的数量a[i],枚举1到m内余数为j的数量b[j]。如果i*j对2016取模等于0,则余数为i的每个数字都可以和余数为j的每个数字进行配对,即数量为a[i...原创 2019-04-04 19:45:19 · 427 阅读 · 0 评论 -
Codeforces Round #200 (Div. 1) A. Rational Resistance 数论
题解题目大意,给出a/b的电阻值,问最少使用多少个阻值为1的电阻串联或并联成当前阻值。对于a/b的阻值如果a大于b则可以拆分出整数c,即a/b=c+(a-bc)/b,则(a-bc)/b串联c个阻值为1的电阻可以得到a/b。如果a小于b,对于并联上c个阻值为1的电阻根据电阻公式可得1/((b-a*c)/a+c)=a/b,即a/b的电阻可由a/(b-c*a)并联c个得到。所以对于a/b电阻所需...原创 2019-03-15 12:39:22 · 218 阅读 · 0 评论 -
Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs) 分解质因数
题解题目大意 n!在b进制下末尾有多少个0有一道经典例题n!在10进制下末尾有多少0,因为10=5*2且5和2都是质且5的个数肯定没2多,所以只需要统计n!中5有多少个即可在b进制下先考虑可以被分解为质因数b=x*x*x*…y*y*y*…z*z*z… 如果n!中因子xyz…的数量都满足则在b进制下末尾一定有一个0末尾0的个数就是(每个质因子数量/b中这个质因子数量)然后取min再分解质因...原创 2019-02-11 20:31:00 · 327 阅读 · 0 评论 -
CCPC-Wannafly Winter Camp Day1 (Div2, onsite) C 拆拆拆数 数论
题解ab两个数字如果互质直接输出a和b 如果不互质则在10以内暴力就可以得到答案 为什么是这样我也不清楚哈哈 当作一个结论记了AC代码#include &lt;stdio.h&gt;#include &lt;bits/stdc++.h&gt;using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;l...原创 2019-01-25 17:38:10 · 530 阅读 · 0 评论 -
郑州轻工业大学“CCPC2019-河南省赛”选拔赛(2) 部分题解
题目链接A 火柴棒等式 <暴力>#include <stdio.h>#include <bits/stdc++.h>#define fst first#define sed secondusing namespace std;typedef long long ll; const int INF = 0x3f3f3f3f;const ll L...原创 2019-04-18 21:21:24 · 950 阅读 · 0 评论