
数论
文章平均质量分 65
Fuko_Ibuki
Eclipse first, the rest nowhere. 已从ACM领域退出,这个账号不会再发题解了。
展开
-
Codeforces 1649E Tyler and Strings 数论,数据结构
文章目录题意题解题目链接一道非常经典的数据结构辅助计数题.题意给定字符串sss和ttt,将sss中的字母随意排列,求排列的字典序小于ttt的方法由多少种.题解本题的字母有2×1052\times 10^52×105种,因此需要用到数据结构辅助.我们不妨来思考一下只有262626种字母时候的做法.首先统计sss中每种字母的个数,然后开始对ttt的第一位进行计算.可以发现,sss的第一位放置的情况只有333种.其中s1>t1s_1>t_1s1>t1的情况不合法直接忽略,而s1原创 2022-04-10 11:07:47 · 366 阅读 · 0 评论 -
Codeforces 1658D1&D2 388535 精妙异或数论
文章目录题意题解更衣人偶坠入爱河正在播出中,不知道大家是否喜欢这部作品.本题的题目与其他题目不同,为一个莫名其妙的数字,在某个不可描述的网站上貌似可以搜出相对应的内容.题目链接题意将[l,r][l,r][l,r]之间的数重新排列,再将所有数和一个五条确定的数xxx相异或得到一个序列aaa,你需要帮海梦确定xxx是多少,任一解均可.题解先看简单难度,l=0l=0l=0.这个很简单,因为最终的序列当中必定有一个数是000变成的,因此对二进制的每一位计算aaa数组和[l,r][l,r][l,r]相比原创 2022-03-30 20:59:25 · 702 阅读 · 0 评论 -
Gym 103443L Leadfoot 二进制+组合数数论 神仙题
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-03-30 20:25:20 · 873 阅读 · 0 评论 -
Codeforces 1614D Divan and Kostomuksha 调和级数dp,枚举因数优化
文章目录题意题解题意给出一个序列,重排这个序列,使得∑i=1ngcd(a1,a2,a3,...,ai)\sum_{i=1}^{n}gcd(a_1,a_2,a_3,...,a_i)i=1∑ngcd(a1,a2,a3,...,ai)最大,输出这个最大值.题解数据范围可以使用cntcntcnt数组,故考虑调和级数算法.cntcntcnt数组存储每一个数作为约数在多少个数中出现过.则再处理dpdpdp数组表示对于gcd至少为iii的情况下的最大和.转移方程为dp[y]=max(dp[y],原创 2021-11-29 12:55:20 · 2236 阅读 · 2 评论 -
Codeforces 1558B & 1561D2 Up the Strip 化因数为倍数优化dp
文章目录题意题解题意有nnn个格子,一开始有个棋子在编号为nnn的格子上,要把它移动到编号为111的格子.你有两种操作:当前位置编号为xxx,选择一个y∈[1,n−1]y\in [1,n-1]y∈[1,n−1],则可以变为x−yx-yx−y.当前位置编号为xxx,选择一个z∈[2,n]z\in[2,n]z∈[2,n],可以变为[xz][\frac{x}{z}][zx].只要具体操作不同就是两种不同的方法,问有多少种不同方法可以把棋子从nnn移动到111,取模一个大质数.题解这题一来显然考原创 2021-08-26 12:42:22 · 1073 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(7)04 即 HDU 7047 Link With Balls 组合计数神题
文章目录题意题解不幸的我们并没能做出这题,还被别人在四小时五十八分绝杀.题意有2n2n2n个桶,其中nnn个里面第iii个里面拿出来的球的数量必须是iii的倍数,另nnn个桶里第iii个拿出来的球的数量不能超过nnn,问拿出mmm个球有多少种方法.对每一个桶都可以拿出000个球.题解先转换一下题意.对于两个编号为iii的桶,我们考虑能拿出iii的倍数个球的桶和最多拿出i−1i-1i−1个球的桶,把这两个桶合成一个桶,惊人的发现这个桶可以取出任意数量的球,并且只有一种取法.第二个桶还多出一个球,原创 2021-08-13 01:39:33 · 264 阅读 · 0 评论 -
HDU 5728 PowMod 欧拉函数公式推导+欧拉降幂
文章目录题意题意令k=∑i=1mϕ(n×i) mod 109+7k=\sum_{i=1}^{m}\phi(n\times i)\ \ mod \ \ 10^9+7k=∑i=1mϕ(n×i) mod 109+7,求kkkkkk...... mod pk^{k^{k^{k^{k^k......}}}}\ mod\ pkkkkkk...... mod p.n,m,p≤107n原创 2021-07-08 19:01:28 · 8414 阅读 · 1 评论 -
Codeforces 895C Square Subsets 状压dp,线性基异或高斯消元
文章目录题意题解好好的状压dp被搞成蜜汁贪心.题意给一些数,求能取出多少个非空子集使所有数相乘为完全平方数.n≤105,ai≤70n\leq 10^5,a_i\leq70n≤105,ai≤70.题解707070以内的质数只有191919个,并且一个数的平方性可以用每一个质数的奇偶性判断,不妨用一个压缩状态来代表某个数的状态是否是奇数.我们对所有数取状态之后本题变为有多少个集合使状态的异或为0.列出状态矩阵,进行高斯消元,可以发现答案为2x−12^x-12x−1,其中xxx为该异或方程自由元原创 2021-02-21 12:41:08 · 10401 阅读 · 0 评论 -
Codeforces 1139D Steps to One 期望,容斥,莫比乌斯反演
文章目录题意题解题意一个序列会不断随机产生[1,m][1,m][1,m]之间的一个正整数添加在序列的最后,求整个序列中所有数的最大公约数为111时序列长度的期望.题解我们先思考转移.很显然dp[k]=∑i=1mdp[gcd(i,k)]m+1dp[k]=\frac{\sum_{i=1}^{m}dp[gcd(i,k)]}{m}+1dp[k]=m∑i=1mdp[gcd(i,k)]+1但是这样做我们可以成功得到优越的m2log(m)m^2log(m)m2log(m)超时算法.考虑使用容斥进行优化.原创 2021-02-09 13:33:18 · 10886 阅读 · 1 评论 -
Codeforces 665F Four Divisors 数论,Min_25筛法
文章目录题意题解题目链接题意求小于等于nnn的正整数中有多少个数刚好有四个约数,其中n≤1011n\leq 10^{11}n≤1011.题解显然不能直接筛.经过学习,我们发现min_25min\_25min_25筛法可以在O(n23)O(n^{\frac{2}{3}})O(n32)的复杂度内完成本题.首先我们可以意识到成立的数字一定是某个质数的三次方或者两个不同质数的乘积,两者没有重合部分,可分开计算.质数的三次方很好解决,筛出n\sqrt nn的质数然后枚举到nnn即可,关键是后者.m原创 2021-02-06 22:30:05 · 11706 阅读 · 0 评论 -
Codeforces 623B Array GCD 数论,dp
文章目录题意题解题意一个序列每个数都大于111,要使整个数列的最大公约数大于111,可以最多删除一个子串,每一个数花费aaa元,也可以给一个数增添111或者减少111,每个数最多操作一次.求达成目标最少需要花费的钱数.题解当整个数列的gcdgcdgcd确定了的时候,可以用dpdpdp求出最少需要的钱数.用dp[0][i]表示前iii个数中没有被删除的数时的最低需求.dp[1][i]表示第iii个数被删除时的最低需求.dp[2][i]表示第iii个数未被删除并且前面已经有数被删除时的最低需求.原创 2021-01-31 21:07:50 · 11675 阅读 · 0 评论 -
Codeforces 1106F Lunar New Year and a Recursive Sequence 矩阵快速幂,原根转化模意义下对数,BSGS
文章目录题意题解对数法转指数线性递推原根与模意义下求对数拔山盖世!最终步骤Problem Origin狠搞了一个多星期,做出来之后仍然一知半解,写个博客重理思路.题意定义序列fff满足以下的递推关系式:fi=(∏j=1kfi−jbj)mod pf_i= (\prod ^k _{j=1} f^{bj} _{i-j}) mod \ pfi=(j=1∏kfi−jbj)mod p其中p=998244353p=998244353p=998244353.已知fff的前k−1k-1原创 2020-10-30 23:04:42 · 12079 阅读 · 0 评论 -
Codeforces 1043F Make It One 经典调和级数算法,组合数,dp
题意给你n个数,取出一些数使这些数的最大公约数为1,求取出数字的最少个数,不能输出−1.给你n个数,取出一些数使这些数的最大公约数为1,求取出数字的最少个数,不能输出-1.给你n个数,取出一些数使这些数的最大公约数为1,求取出数字的最少个数,不能输出−1.数据范围两个3×1053\times 10^53×105.秒杀可以看到当几个质数分别为a,b,c,d,e,f......a,b,c,d,e,f......a,b,c,d,e,f......时,abcde,abcdf,abcef,abdef,acde原创 2020-08-18 21:31:31 · 10632 阅读 · 0 评论 -
CodeForces 1182E Product Oriented Recurrence 数列通项转化,矩阵快速幂处理数列递推,逆元,欧拉降幂等综合数论
题意定义f(n)=f(n−1)⋅f(n−2)⋅f(n−3)⋅c2n−6(n≥4)。给定n,f(1),f(2),f(3)和c,求f(n)对109+7取模的结果。定义f(n)=f(n-1)⋅f(n-2)⋅f(n-3)⋅c^{2n-6} (n≥4)。给定n,f(1),f(2),f(3)和c,求f(n)对10^9+7取模的结果。定义f(n)=f(n−1)⋅f(n−2)⋅f(n−3)⋅c2n−6(n≥4)。给定n,f(1),f(2),f(3)和c,求f(n)对109+7取模的结果。题解首先看到c2n−6c^{原创 2020-07-29 00:03:12 · 10588 阅读 · 0 评论 -
Codeforces 261C/262E Maxim and Matrix 数位dp,组合数,数论,倍增
题目解法题目给定一个谜一般的矩阵,求2 to n+1行中有多少行中1的个数等于t. 矩阵是这样的.以下是n=80n=80n=80时候的矩阵.这是一个非常漂亮的分形矩阵.如果光光让你打表估计都得是个D题.0000000000000000000000000000000000000000000000000000000000000000000000000000000...原创 2018-07-28 16:34:47 · 11768 阅读 · 0 评论 -
51nod 1421 最大取模值 奇怪的数学方法
题目描述瞎搞过程这题确实经典.我旁边的一些神仙都用奇怪的方法A掉了,而我只能选择了贺题.题目描述给出一个数组a,求当a[i]>=a[j]时a[i]%a[j]最大的值.n<=10^5,a[i]<=10^6.瞎搞过程首先想到的当然是n2n2n^2的暴力.把暴力打上去有404040分. 然后我们考虑一下,对于a[i]a[i]a...原创 2018-07-12 12:31:19 · 11458 阅读 · 0 评论 -
Codeforces 869C The Intriguing Obsession 组合数取模
Codeforces 869C The Intriguing Obsession思考一下人生.这是一场物语场,而且A题直接puts("Karen")能过,我对此印象非常深.我不知道大家记不记得. 我做的时候一看当场就用phpphpphp写了交上去. 好的那我们现在看C题.Codeforces 869C The Intriguing Obsession...原创 2018-07-11 21:48:10 · 11247 阅读 · 0 评论 -
数论一些奇怪的模板题(贺题福利)
[toc] 只有题名和代码.法雷序列(欧拉函数的前缀和)#pragma GCC optimize("inline,Ofast",3)#include&lt;bits/stdc++.h&gt; //Ithea Myse Valguliousnamespace chtholly{typedef long long ll;#define re0 register int#define...原创 2018-07-10 21:57:40 · 11676 阅读 · 0 评论 -
lightoj 1098 A New Function 约数之和(一道奇怪的数论) 整除分块优化
题目如下:思考人生:题目如下:lightoj 1098 A New Function 求1-n所有数的所有约数之和(不包括1和它本身).n&lt;=2e9.思考人生:首先考虑打表找规律.规律并不是这么好找的.我们暂时放弃. 如果直接暴力去跑,是 O(n×n−−√)O(n×n)O(n\times \sqrt{n}) 的. 那么我们从另一个方...原创 2018-07-10 20:37:21 · 11804 阅读 · 0 评论