Luogu P4161 [SCOI2009]游戏 数论+DP
ywy神犇太巨辣!!一下就明白了!!
题意:求$lcm(a_1,a_2,...,a_k)$的种类,其中$\Sigma\space a_i <=n$,$a_i$相当于环长
此处的$DP$,相当于是在求$lcm(a_1,a_2,...,a_k)$按算术基本定理分解的式子的种类。
感性理解一下,一堆>=2的数,加起来一定比乘起来小,但是我们又要保证他们互质(否则就亏了,不如同时去掉gcd),所以就每个数就是一个质数的幂。
所以这一堆数大致就是形如$p_i^{k_i}$这种样子的
所以可以背包转移:把每个质数当做物品,注意转移时的顺序,用质数$p$转移时不能访问已经经过$p$转移过的(类似01背包的倒序循环),否则不满足互质;
#include<cstdio> #include<iostream> #define R register int const int N=1010; using namespace std; int n,cnt,pri[N]; bool v[N]; long long f[N],ans; inline void PRI() { for(R i=2;i<=n;++i) {if(!v[i]) pri[++cnt]=i;for(R j=1;j<=cnt&&i*pri[j]<=n;++j) {v[i*pri[j]]=true; if(i%pri[j]==0) break;}} } signed main() {scanf("%d",&n); f[0]=1; PRI();for(R i=1;i<=cnt;++i) for(R j=n;j>=0;--j) for(R k=pri[i];k<=j;k*=pri[i]) f[j]+=f[j-k];for(R i=0;i<=n;++i) ans+=f[i]; printf("%lld\n",ans); }
2019.05.25
转载于:https://www.cnblogs.com/Jackpei/p/10923147.html
Luogu P4161 [SCOI2009]游戏 数论+DP相关推荐
- P4161 [SCOI2009]游戏
传送门 首先这题的本质就是把\(n\)分成若干个数的和,求他们的\(lcm\)有多少种情况 然后据说有这么个结论:若\(p_1^{c_1}+p_2^{c_2}+...+p_m^{c_m}\leq n\ ...
- bzoj千题计划116:bzoj1025: [SCOI2009]游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=1025 题目转化: 将n分为任意段,设每段的长度分别为x1,x2,-- 求lcm(xi)的个数 有一个 ...
- bzoj-1025 [SCOI2009]游戏
1025: [SCOI2009]游戏 Time Limit: 1 Sec Memory Limit: 162 MB Description windy学会了一种游戏.对于1到N这N个数字,都有唯一且 ...
- P4158 [SCOI2009]粉刷匠(dp)
P4158 [SCOI2009]粉刷匠(dp) 考虑每行独立计算. 所以可以开一个三维数组:g[i][j][k]g[i][j][k]g[i][j][k]第iii行前jjj列涂了kkk次的最大值. 然后 ...
- BZOJ 1025: [SCOI2009]游戏
1025: [SCOI2009]游戏 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2471 Solved: 1615 [Submit][Statu ...
- 数字游戏——数位dp问题
数字游戏 数位dp思路: 首先考虑第一个数字能填什么,预处理第一个数字能填的数(除去边界),然后去判断边界,即让循环往下走. 代码 #include <iostream> #include ...
- [luogu2059 JLOI2013] 卡牌游戏 (概率dp)
[luogu2059 JLOI2013] 卡牌游戏 (概率dp) 题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等 ...
- 题解 BZOJ1026 luogu P2657 [SCOI2009]windy数 数位DP
BZOJ & luogu 看到某大佬AC,本蒟蒻也决定学习一下玄学的数位$dp$ (以上是今年3月写的话(叫我鸽神$qwq$)) 思路:数位$DP$ 提交:2次 题解:(见代码) #inclu ...
- BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=4042 (Luogu) https://www.luogu.org/prob ...
最新文章
- opensuse 安装 php,在openSUSE上安装和配置LAMP(2)
- 使用admodify工具修改用户主目录时的注意事项
- 必须要熬夜的时候的最佳伴侣是什么?亲测有效
- 【BootCDN】前端使用开源免费的 CDN 加速服务
- Php 魔术函数性能,php常用的魔术函数详细解析
- CodeForces:749(div1)750(div2)
- 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法
- 006-Python迭代器
- struts2(一) struts2入门
- 历史上的今天:雅虎正式成立;PC 设计先驱诞生;Excite@Home 破产
- 拉拉交友 http://www.les-sky.net 代码备份: 开发自己的可视化编辑器
- dell笔记本c语言系统,戴尔dell笔记本电脑U盘重装系统win7教程图解
- Red Hat 5.6-64位使用yum升级PHP
- 商城管理系统(前台+后台+管理员+用户+html+jsp)
- java++ioutils,Java IOUtils.copy方法代码示例
- 创建数据库索引的几种方法
- 计算机感染病毒后 一定不能清除的措施是,货物周转量比上年同期下降最多的是()。...
- Python使用scipy简单求解线性规划问题
- HTML- markdown版 江城子·乙卯正月二十日夜记梦
- 【Android】音乐播放器APP的设计与实现
热门文章
- 恢复初始快捷键_如何将Windows10系统还原初始状态
- ansible 建 kubernetes 证书签名请求_Java中的微信支付(2):API V3 微信平台证书的获取与刷新...
- 江苏省计算机考试昨晚客观题不能提交,2019法考江苏3.6万人报名 主客观题均推行机考...
- csr 蓝牙驱动_双11来临之际,推荐几款无线蓝牙耳机吧
- python 字典查询比列表快_为什么python字典要比列表快以及哈希查找解释。
- @param注解什么意思_Java反射是什么?看这篇绝对会了!
- 全国计算机等级考试模拟系统中 二级c语言的 安装密码,NCRE模拟考试系统安卓版下载-2017全国计算机等级考试二级练习系统v2.4.1 官方版下载__飞翔下载...
- 数组重组java,重组数组数组并组合相同的术语
- au人声处理_如何使用AU软件为视频降噪?
- java注解_Java注解