bzoj2721 [Violet 5]樱花
分析:这道题对于我这种蒟蒻来说还是很有难度啊。
思路非常巧妙,既然不定方程要有有限个数解,那么这个肯定会对解有所限制,也就是本题中的正整数.这个时候我们要表示出方程中的一个根x,设z = n!,那么x=yz/(y-z),这样的话不能得到答案,我们要得到的式子一定是分母只能有乘积的形式,并且同一个字母不能同时在分子分母中出现,因为我们就是利用正整数的整除性来求解的,可以看出x和y都大于z,所以我们设y = z + d,带入,就消掉了y,可以得到x = z^2/d + z,因为x是正整数,所以z^2/d必须是整数,所以d是z^2的因子,那么我们只需要求出z^2有多少个约数就好了.
求约数的个数要用到乘法原理和线性筛,z可以表示为p1^k1 * p2^k2 * p3^k3*...*pn^kn这种形式,每个质因数可以选1到ki个或不选,而约数就是由不同的质因子通过相乘组合起来的,所以约数的个数就等于(k1 + 1)*(k2 + 1)*...*(kn + 1),而我们要求z^2的因子个数,总不可能直接平方吧......可以发现每个质因子的次数扩大了两倍,那么每个质因子就有2*ki + 1种选择,和上面一样直接乘法原理出答案.
因为z = n!,所以枚举1到n中的质数i的倍数,看i出现了几次,就能得到ki.
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<cmath>using namespace std;const int mod = 1000000007;int prime[1000010], tot, cnt[1000010],n; bool vis[1000010];long long ans = 1;void init() {for (int i = 2; i <= n; i++){if (!vis[i])prime[++tot] = i;for (int j = 1; j <= tot; j++){if (prime[j] * i > n)break;vis[prime[j] * i] = 1;if (i % prime[j] == 0)break;}} }int main() {scanf("%d", &n);init();for (int i = 1; i <= tot; i++)for (int j = prime[i]; j <= n; j += prime[i])for (int k = j; k % prime[i] == 0; k /= prime[i])cnt[i]++;for (int i = 1; i <= tot; i++)ans = (ans * 1LL * (cnt[i] * 2 + 1) % mod) % mod;printf("%lld\n", ans);return 0; }
转载于:https://www.cnblogs.com/zbtrs/p/7390316.html
bzoj2721 [Violet 5]樱花相关推荐
- 【BZOJ 2721】 2721: [Violet 5]樱花 (筛)
2721: [Violet 5]樱花 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 599 Solved: 354 Description Inpu ...
- 1624 Violet 5 樱花(Bzoj2721 LOJ10202 LUOGU1445 提高+/省选-) 交叉相乘 阶乘质因数分解技巧 约数个数计算
总目录 在线测评地址(ybt) 在线测评地址(LOJ) 在线测评地址(LUOGU) 1.交叉相乘 阶乘质因数分解技巧 约数个数计算 ybt 通过 测试点 结果 内存 时间 测试点1 答案正确 604K ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 一本通提高篇在线提交地址
一本通提高篇 1 基础算法 1.1 贪心算法 1.1.1 P2018 [第一章例题1.1]活动安排正确: 9 提交: 17 比率: 52.94 % 1.1.2 P2021 [第一章例题1.2]种树正 ...
- [Violet]樱花
[Violet]樱花 BZOJ luogu 一道有意思的推式子题 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}\] \[\frac{x+y}{xy}=\frac{1}{ ...
- Luogu P1445[Violet]樱花/P4167 [Violet]樱花
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] \[\frac ...
- P4167 [Violet]樱花
题目背景 又到了一年樱花盛开的时节.Vani 和妹子一起去看樱花的时候,找到了一棵大大的樱 花树,上面开满了粉红色的樱花.Vani 粗略估计了一下,一共有足足 n! 片花瓣. Vani 轻柔地对她说 ...
- bzoj2721樱花——质因数分解
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 可以知道 x 和 y 一定都大于 n! ,不妨把 y 表示为 n!+t : 那么 1/ ...
- 【[Violet]樱花】
就是化柿子 我们求 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] 的正整数解的个数 喜闻乐见的化柿子了 \[\frac{x+y}{xy}=\frac{1}{n!}\ ...
最新文章
- opencv算法+人脸检测
- node.js 中的package.json文件怎么创建?
- abaqus结构工程分析及实例详解pdf_“结构非线性、材料拟合、冲击碰撞、钣金/金属成形、顺序耦合、多物理场、有/非参优化”专题...
- 2013年工作中用到的10个命令:11-20
- mysql show global variables
- 卷积层(Convolution)是如何向后传播(Backpropagations)的呢
- Hello Qt——QtCreator代码格式化
- FPGA学习 Vivado使用篇
- 杂记 什么是ABC记谱法
- win10PPT不支持Flash动画
- 玉溪第一座智能变电站,造国际一流智能配电网,机器人来运维
- DJL 教程 1.1 什么是AI人工智能
- Visual Studio 2015/2017/2019 设置透明主题、个性背景(含异常解决方法)
- RLC串联电路截止频率
- Android 9.0 简单适配
- 微信号名称乱码什么情况_微信号改成什么好?
- 锐捷交换机(S2924/2928G)光口改电口,或电口改光口的准确方法
- 布朗大学计算机专业怎么样,恭喜P同学“跨专业”斩获布朗大学-计算机科学硕士!...
- 5.2 activiti任务监听器TaskListener
- 如何准备机器学习数据集_数据准备技术及其在机器学习中的重要性
热门文章
- java循环基础知识_java基础知识—循环结构
- horizon服务主要模块_Horizon Workspace 快速部署指南三(配置Workspace数据模块)
- sql server update触发器_SQL Server 触发器
- python中的括号不是西文吗_二级Python---python语言的基本语法元素(Day1)
- 设计模式 之 单例模式
- 设计模式练习_设计练习是邪恶的
- ElementUI 组件库 md-loader 的解析和优化
- 写给初中级前端的高级进阶指南等
- 动图演示23个鲜为人知的VSCode快捷键
- tomcat闪退解决方案