[CF261E]Maxim and Calculator_搜索_欧拉筛素数_动态规划
Maxim and Calculator
题目链接:https://www.luogu.org/problem/CF261E
数据范围:略。
题解:
考试的时候只会暴力,学弟太强了$\%\%\% Orz$。
感觉直接处理不太好处理,得想到所有有可能被这种操作在$100$步表示出来。
先打个表。
之后就随便$dpdp$就好了,关键是你得想到所有合法的数非常小。
我反正是没想到.....
代码:
#include <bits/stdc++.h> #define N 3000010 using namespace std; typedef long long ll; bool vis[110]; int prime[110], cnt; void init(int mx) {
for (int i = 2; i <= mx; i ++ ) {
if (!vis[i]) {
prime[ ++ cnt] = i;
}
for (int j = 1; j <= cnt && i * prime[j] <= mx; j ++ ) {
vis[i * prime[j]] = true;
if (i % prime[j] == 0) {
break; }
}
}
} int a[N], f[N]; bool b[N]; int l, r, p; void dfs(int x, int k) {
a[ ++ a[0]] = k;
for (int i = x; i <= cnt; i ++ ) {
if ((ll)prime[i] * k <= r) {
dfs(i, k * prime[i]);
}
}
} int main() {
cin >> l >> r >> p ;
init(p);
dfs(1, 1);
sort(a + 1, a + a[0] + 1);
for (int i = 1; i <= a[0]; i ++ ) {
f[i] = 0x3f3f3f3f;
}
f[1] = 0, b[1] = 1;
int ans = 0;
for (int i = 2; i <= p; i ++ ) {
int j = i;
for (int k = 1; k <= a[0]; k ++ ) {
while ((j <= a[0]) && (a[j] != a[k] * i)) {
j ++ ;
}
if (j > a[0]) {
break; }
if (f[k] + 1 < f[j]) {
f[j] = f[k] + 1;
}
if ((a[j] < l) || b[j]) {
continue;
}
if (f[j] + i <= p) {
b[j] = 1;
ans ++ ;
}
}
}
cout << ans << endl ;
return 0;
}
小结:不会不会,这种题出成考试题真的合适么
[CF261E]Maxim and Calculator_搜索_欧拉筛素数_动态规划的更多相关文章
- [bzoj3308]九月的咖啡店_欧拉筛素数_费用流
bzoj-3308 九月的咖啡店 题目大意:深绘里在九份开了一家咖啡让,如何调配咖啡民了她每天的头等大事我们假设她有N种原料,第i种原料编号为i,调配一杯咖啡则需要在这里若干种兑在一起.不过有些原料不 ...
- POJ-3126.PrimePath(欧拉筛素数打表 + BFS)
给出一篇有关素数线性筛和区间筛的博客,有兴趣的读者可以自取. 本题大意: 给定两个四位的素数,没有前导零,每次变换其中的一位,最终使得两个素数相等,输出最小变换次数.要求变换过程中的数也都是素数. 本 ...
- 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)O(n)基础题贴个板子备忘
P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...
- [bzoj4818][Sdoi2017]序列计数_矩阵乘法_欧拉筛
[Sdoi2017]序列计数 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=4818. 题解: 首先列出来一个递推式子 $f[i][0]$ ...
- Java实现欧拉筛与花里胡哨求质数高级大法的对比
我也不清楚这是什么高级算法,欧拉筛是昨天有位大佬,半夜无意间告诉我的 欧拉筛: 主要的含义就是我把这个数的所有倍数都弄出来,然后下次循环的时候直接就可以跳过了 import java.text.Sim ...
- BZOJ_4804_欧拉心算_欧拉函数
BZOJ_4804_欧拉心算_欧拉函数 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N&l ...
- BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数
BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行 ...
- 埃氏筛优化(速度堪比欧拉筛) + 洛谷 P3383 线性筛素数 题解
我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较 ...
- noip复习——线性筛(欧拉筛)
整数的唯一分解定理: \(\forall A\in \mathbb {N} ,\,A>1\quad \exists \prod\limits _{i=1}^{s}p_{i}^{a_{i}}=A\ ...
随机推荐
- Bzoj 1086: [SCOI2005]王室联邦(分块)
1086: [SCOI2005]王室联邦 Time Limit: 10 Sec Memory Limit: 162 MBSec Special Judge Submit: 1557 Solved: 9 ...
- wait系列
转自 http://blog.csdn.net/todd911/article/details/15028511 1.wait函数和waitpid函数 当一个进程正常或异常终止时,内核就向其父进程发送 ...
- MySQL查询top N记录
下面以查询每门课程分数最高的学生以及成绩为例,演示如何查询 top N记录.下图是测试数据,表结构和相关 insert 脚本见<常用SQL之日期格式化和查询重复数据>. 使用自连接[推荐] ...
- vue draggable 火狐拖拽搜索问题
最近在使用vuedraggable做导航时候,谷歌拖拽是没问题的,但是在火狐测试时候,拖拽时候是可以成功,但是火狐还是打开了一个新的tab,并且搜索了,一开始想着是阻止默认行为,但是在@end时间中阻 ...
- vue devtools无法使用
vue devtools无法使用 一.总结 一句话总结: 没显示vue devtools调试工具的原因是用了生产环境的版本或是压缩的vue版本,或是没有勾选:允许访问文件网址 二.vue调试工具Dev ...
- About Xi’an
Introduction Ancient Capital It is the birthplace of the Chinese Nation, is one of the four ancient ...
- [drf]model设置
参考 //# 给model添加虚拟字段 class CeleryExampleResult(models.Model): task_id = models.BigIntegerField(defaul ...
- git服务器搭建---便签做备注
今天,简单搭建了一下git服务器.发现一篇文章写的挺好的 http://www.cnblogs.com/trying/archive/2012/06/28/2863758.html 并简单和廖雪峰的结 ...
- oracle-游标-存储过程-函数-包
一.存储过程 不可以在insert,update,delete中直接使用,可以有return但代表的是退出过程 过程有三种类型:不返回值,可以返回多个值,参数有三种类型,分别如下: in:只输入,不返 ...
- css简单学习属性2---背景图片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...