当前位置: 首页 > news >正文

AtCoder Beginner Contest 300G - P-smooth number解题报告

AtCoder Beginner Contest 300G - P-smooth number解题报告

1 题目链接

传送门

2 题目大意

题目:P-光滑数的数量
题目大意:

1 1 1 n n n 中,有多少个数的所有质因数均不超过 p ( p ≤ 100 ) p\ (p\leq100) p (p100)

3 解法分析

这道题看着很像搜索,于是你可以写出来一份 T L E TLE TLE 代码。

d f s ( x , y ) dfs(x,y) dfs(x,y) 表示在 ( x , p r m [ y ] ) (x, prm[y]) (x,prm[y]) 下单答案。
其中 p r m [ 37 ] prm[37] prm[37] 来存下 100 100 100 内的所有质数,因只有 25 25 25 个所以不如打表。

接下来考虑优化。

首先就是一个记忆化搜索,然后再剪枝。

十分显然的,从大质数向小质数搜可以有效避免无意义的搜索。

于是复杂度玄学起来,你也就 A C AC AC了。

4 解法总结

记搜+剪枝。

5 AC Code

#include <bits/stdc++.h>
#define int long long
#define N 1000000
using namespace std;int ans;
int n, m, inf;
int dp[26][2000007];int prm[37] = {2, 3, 5, 7,11, 13, 17, 19,23, 29, 31, 37,41, 43, 47,53, 59, 61, 67,71, 73, 79,83, 89, 97,1145141919810
};void dfs(int x, int y) {if (x <= N && dp[y][x]) {ans += dp[y][x];return ;}if (!y) {ans = ans + __lg(x) + 1;return ;}int cnt = ans;dfs(x, y - 1);if (x >= prm[y])dfs(x / prm[y], y);if (x <= N)dp[y][x] = ans - cnt;
}signed main() {scanf("%lld%lld", &n, &m);for (; prm[inf + 1] <= m; ++inf);dfs(n, inf);printf("%lld\n", ans);return 0;
}
http://www.lryc.cn/news/69831.html

相关文章:

  • 数据分析与预处理常用的图和代码
  • Http与Https 比较
  • 02 面向对象( 继承,抽象类)
  • [C++]22种设计模式的C++实现大纲
  • 用Powerpoint (PPT)制作并导出矢量图、高分辨率图
  • 小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易
  • java Class类详解
  • DMGI:Unsupervised Attributed Multiplex Network Embedding
  • C++基本介绍
  • 如何理解工业互联网与智能制造,怎么共建智慧工厂?
  • 主机访问不到虚拟机(centos7)web服务的解决办法
  • 第四章 ActiveMQ与SpringBoot集成——ActiveMQ笔记(动力节点)
  • Halcon 算子 select_shape_std 和 select_shape_xld区别
  • 【Java基础】匿名内部类
  • 基于Freertos的ESP-IDF开发——6.使用DHT1温湿度传感器
  • C++——模板初阶
  • 【TOOLS: Linux与windows及linux与linux之间文件传输常用方法及命令】
  • 【博览群书】《实战大数据》——属于我的第一本大数据图书
  • 【计算机组成原理】实验二
  • hive数据库hql基础操作02
  • 门电路OD门
  • 没有域名,一个服务器Nginx怎么部署多个前端项目
  • 城市内涝的原因和解决措施,内涝监测预警助力城市防涝度汛
  • 8年测试总结,性能测试问题大全,这些问题你应该认清的...
  • RabbitMQ集群安装
  • 面试:link和@import的区别
  • 图片隐写(一)
  • Vivado 下 IP核 之ROM 读写
  • 朗诵素材-《诵四季诗韵,咏师恩师德》
  • CHB-麻省理工学院头皮脑电图数据库