首页 > 其他分享 >NFLS NOI模拟 GCD

NFLS NOI模拟 GCD

时间:2024-05-24 17:20:39浏览次数:12  
标签:gcd GCD min text dig times leq NFLS NOI

涉及知识点:数位DP

题意

令 \(\text{dig}(i)\) 表示 \(i\) 十进制表示下各数位乘积,则一个数对是正确的当且仅当满足以下条件:

  • \(1 \leq i,j \leq n\)
  • \(\text{dig}(i) \times \text{dig}(j) > 0\)
  • \(\gcd(\text{dig}(i), \text{dig}(j)) \leq k\)

给你 \(n,k\ (\leq 10^{18})\) 求有多少正确的有序数对。答案对 \(998244353\)​​ 取模。

思路

由于 \(\text{dig}\) 为“数位”的乘积,我们知道一个 \(1\leq x\leq 9\) 的数的质因子只有可能为 \(2,3,5,7\),因此乘起来质因子也只有这四个,而且发现这四个质因子个数的有效组合其实只有 \(10^4\) 级别。

记 \(f_{i,j,k,l}\) 为满足 \(2^i \times 3^j \times 5^k \times 7^l | \text{dig}(a)\) 且满足 \(a\leq n\) 的 \(a\)​​ 的个数。这东西可以数位 DP。

那么满足 \(\gcd(\text{dig}(a),\text{dig}(b))=2^i \times 3^j \times 5^k \times 7^l\) 的 \((a,b)\) 有序数对的个数为:

\[\large\sum\limits_{p_1, p_2, p_3, p_4 \in {0,1}} f_{i+p_1,j+p_2,k+p_3,l+p_4}^2 \times (-1)^{p_1 + p_2 + p_3 + p_4} \]

这是个容斥式,\(f_{i,j,k,l}\) 意味着 \(x=2^{x_2} \times 3^{x_3} \times 5^{x_5} \times 7^{x_7}(x_2\geq i,x_3\geq j,x_5\geq k,x_7\geq l),x\leq n\) 的情况数。

设 \(a=2^{a_2} \times 3^{a_3} \times 5^{a_5} \times 7^{a_7}, b=2^{b_2} \times 3^{b_3} \times 5^{b_5} \times 7^{b_7}\) 时,我们通过上述容斥式算出了 \(\min(a_2,b_2)=i,\min(a_3,b_3)=j,\min(a_5,b_5)=k,\min(a_7,b_7)=l\) 的情况数。具体做法可以理解为用 \(f_{i,j,k,l}\) 减去了 \((i+1,j,k,l),(i,j+1,k,l),(i,j,k+1,l),(i,j,k,l+1)\) 这几种情况的并集(也就是 \(a,b\) 存在质因子对应的指数取 \(\min\) 大于我们想要的情况)。

我们又知道 \(\gcd(a,b)=2^{\min(a_2,b_2)} \times 3^{\min(a_3,b_3)} \times 5^{\min(a_5,b_5)} \times 7^{\min(a_7,b_7)}\),因此就算出来了满足 \(\gcd(\text{dig}(a),\text{dig}(b))=2^i \times 3^j \times 5^k \times 7^l\) 的 \((a,b)\) 有序数对的个数。

最后遍历一下质因子之积 \(\leq k\) 的所有组合统计答案即可。

标签:gcd,GCD,min,text,dig,times,leq,NFLS,NOI
From: https://www.cnblogs.com/SkyNet-PKN/p/18211336

相关文章

  • CSP历年复赛题-P1061 [NOIP2006 普及组] Jam 的计数法
    原题链接:https://www.luogu.com.cn/problem/P1061题意解读:从编号s~t的字母从挑w个,组成一种特殊的数字,数字里字母都是升序的,给定初始数字,要计算后5个。解题思路:1、模拟法模拟样例:2105有效字母范围:b,c,d,e,f,g,h,i,j 初始值:bdfij要计算bdfij的下一个,采取如下步骤......
  • diffusion model(一):DDPM技术小结 (denoising diffusion probabilistic)
    发布日期:2023/05/18主页地址:http://myhz0606.com/article/ddpm1从直觉上理解DDPM在详细推到公式之前,我们先从直觉上理解一下什么是扩散对于常规的生成模型,如GAN,VAE,它直接从噪声数据生成图像,我们不妨记噪声数据为\(z\),其生成的图片为\(x\)对于常规的生成模型:学习一个解码函......
  • 洛谷[普及]:P1149 [NOIP2008 提高组] 火柴棒等式
    [NOIP2008提高组]火柴棒等式感谢题目提供者CCF_NOI题目描述给你n 根火柴棍,你可以拼出多少个形如A+B=C 的等式?等式中的A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字 的拼法如图所示:注意:1.加号与等号各自需要两根火柴棍;2.如果,则......
  • NFLS NOI模拟 序列
    涉及知识点:分治、贪心前言没错……又是一道叫序列的题……题意有一个长为\(n\(\leq10^5)\)的序列\(a\),你可以花费\(x^2\)的代价将\(a_i\)变成\(a_i+x\),使得代价加上\(a\)两两数之差的绝对值乘以一个给定常数\(c\)的总和最小。思路拿到手觉得是一个贪心,但是直接......
  • CSP历年复赛题-P1046 [NOIP2005 普及组] 陶陶摘苹果
    原题链接:https://www.luogu.com.cn/problem/P1046题意解读:30+伸手的高度,能够得着几个苹果。解题思路:直接模拟。100分代码:#include<bits/stdc++.h>usingnamespacestd;inta[15],h,ans;intmain(){for(inti=1;i<=10;i++)cin>>a[i];cin>>h;......
  • CSP历年复赛题-P1087 [NOIP2004 普及组] FBI 树
    原题链接:https://www.luogu.com.cn/problem/P1087题意解读:字符串作为根,左边一半作为左子树,右边一半作为右子树,递归构造数,并按FBI规则输出后续遍历结果。解题思路:按照题意,通过dfs来构造树,对于字符串str,提取左边一半递归构造左子树,提取右边一半递归构造右子树,前提是字符串长度>1......
  • CSP历年复赛题-P1085 [NOIP2004 普及组] 不高兴的津津
    原题链接:https://www.luogu.com.cn/problem/P1085题意解读:找到两数之和大于8且两数之和最大值的位置解题思路:不多说,送分题,直接模拟法即可100分代码:#include<bits/stdc++.h>usingnamespacestd;inta,b;intmaxx,maxn;intmain(){for(inti=1;i<=7;i++)......
  • NFLS NOI模拟 树数术
    涉及知识点:树、倍增、单调栈题意给你一颗有\(n\(\leq7\times10^5)\)个节点的树,再给你一个长为\(m\(\leq7\times10^5)\)的序列,序列中的值代表树上点的编号,有\(q\)次询问,每次询问取原序列的\(k\(\sumk\leq7\times10^5)\)个子区间并连起来成为一段新的序列,问新的序列......
  • CSP历年复赛题-P1044 [NOIP2003 普及组] 栈
    原题链接:https://www.luogu.com.cn/problem/P1044题意解读:一组数入栈、出栈的方案数,如果了解卡特兰数,此题可以秒杀;如果不了解,也可以通过递归或者递推来解决;最次,可以通过DFS暴搜出方案数,当然对于n个数,一共有n次入栈、n次出栈,一共2n次,每次要么入栈要么出栈,总搜索次数在22n规模,n最......
  • CSP历年复赛题-P1045 [NOIP2003 普及组] 麦森数
    原题链接:https://www.luogu.com.cn/problem/P1045题意解读:要计算2p-1的位数和最后500位,实际上只需要计算2p,两者位数一致,前者比后者个位减1即可,且个位肯定不会是0,比较容易处理。解题思路:如果直接采用高精度乘法计算2p,p最大3.1*106,高精度所用数组最长大概9*105,一共最多计算3.......