Maxim and Calculator

题目链接https://www.luogu.org/problem/CF261E

数据范围:略。


题解

考试的时候只会暴力,学弟太强了$\%\%\% Orz$。

感觉直接处理不太好处理,得想到所有有可能被这种操作在$100$步表示出来。

先打个表。

之后就随便$dpdp$就好了,关键是你得想到所有合法的数非常小。

我反正是没想到.....

代码

  1. #include <bits/stdc++.h>
  2.  
  3. #define N 3000010
  4.  
  5. using namespace std;
  6.  
  7. typedef long long ll;
  8.  
  9. bool vis[110];
  10.  
  11. int prime[110], cnt;
  12.  
  13. void init(int mx) {
  14. for (int i = 2; i <= mx; i ++ ) {
  15. if (!vis[i]) {
  16. prime[ ++ cnt] = i;
  17. }
  18. for (int j = 1; j <= cnt && i * prime[j] <= mx; j ++ ) {
  19. vis[i * prime[j]] = true;
  20. if (i % prime[j] == 0) {
  21. break;
  22.  
  23. }
  24. }
  25. }
  26. }
  27.  
  28. int a[N], f[N];
  29.  
  30. bool b[N];
  31.  
  32. int l, r, p;
  33.  
  34. void dfs(int x, int k) {
  35. a[ ++ a[0]] = k;
  36. for (int i = x; i <= cnt; i ++ ) {
  37. if ((ll)prime[i] * k <= r) {
  38. dfs(i, k * prime[i]);
  39. }
  40. }
  41. }
  42.  
  43. int main() {
  44. cin >> l >> r >> p ;
  45. init(p);
  46. dfs(1, 1);
  47. sort(a + 1, a + a[0] + 1);
  48. for (int i = 1; i <= a[0]; i ++ ) {
  49. f[i] = 0x3f3f3f3f;
  50. }
  51. f[1] = 0, b[1] = 1;
  52. int ans = 0;
  53. for (int i = 2; i <= p; i ++ ) {
  54. int j = i;
  55. for (int k = 1; k <= a[0]; k ++ ) {
  56. while ((j <= a[0]) && (a[j] != a[k] * i)) {
  57. j ++ ;
  58. }
  59. if (j > a[0]) {
  60. break;
  61.  
  62. }
  63. if (f[k] + 1 < f[j]) {
  64. f[j] = f[k] + 1;
  65. }
  66. if ((a[j] < l) || b[j]) {
  67. continue;
  68. }
  69. if (f[j] + i <= p) {
  70. b[j] = 1;
  71. ans ++ ;
  72. }
  73. }
  74. }
  75. cout << ans << endl ;
  76. return 0;
  77. }

小结:不会不会,这种题出成考试题真的合适么

[CF261E]Maxim and Calculator_搜索_欧拉筛素数_动态规划的更多相关文章

  1. [bzoj3308]九月的咖啡店_欧拉筛素数_费用流

    bzoj-3308 九月的咖啡店 题目大意:深绘里在九份开了一家咖啡让,如何调配咖啡民了她每天的头等大事我们假设她有N种原料,第i种原料编号为i,调配一杯咖啡则需要在这里若干种兑在一起.不过有些原料不 ...

  2. POJ-3126.PrimePath(欧拉筛素数打表 + BFS)

    给出一篇有关素数线性筛和区间筛的博客,有兴趣的读者可以自取. 本题大意: 给定两个四位的素数,没有前导零,每次变换其中的一位,最终使得两个素数相等,输出最小变换次数.要求变换过程中的数也都是素数. 本 ...

  3. 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)O(n)基础题贴个板子备忘

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

  4. [bzoj4818][Sdoi2017]序列计数_矩阵乘法_欧拉筛

    [Sdoi2017]序列计数 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=4818. 题解: 首先列出来一个递推式子 $f[i][0]$ ...

  5. Java实现欧拉筛与花里胡哨求质数高级大法的对比

    我也不清楚这是什么高级算法,欧拉筛是昨天有位大佬,半夜无意间告诉我的 欧拉筛: 主要的含义就是我把这个数的所有倍数都弄出来,然后下次循环的时候直接就可以跳过了 import java.text.Sim ...

  6. BZOJ_4804_欧拉心算_欧拉函数

    BZOJ_4804_欧拉心算_欧拉函数 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N&l ...

  7. BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数

    BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行 ...

  8. 埃氏筛优化(速度堪比欧拉筛) + 洛谷 P3383 线性筛素数 题解

    我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较 ...

  9. noip复习——线性筛(欧拉筛)

    整数的唯一分解定理: \(\forall A\in \mathbb {N} ,\,A>1\quad \exists \prod\limits _{i=1}^{s}p_{i}^{a_{i}}=A\ ...

随机推荐

  1. java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

    在pom.xml文件中添加如下依赖: <!-- https://mvnrepository.com/artifact/cn.easyproject/orai18n --> <depe ...

  2. c++ 判断是元音还是辅音

    #include <iostream> using namespace std; int main() { char c; int isLowercaseVowel, isUppercas ...

  3. c 判断是否为 字母或数字(iswalnum example)

    #include <stdio.h> #include <wctype.h> int main () { int i; wchar_t str[] = L"c3p.o ...

  4. 学习GeoServer遇到的问题及答案

    简介:本文的记录学习GeoServer遇到的问题,如果已有答案将会附上. 1.GeoServer介绍?,功能? GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 Ge ...

  5. C语言中内存对齐规则讨论(struct)

    C语言中内存对齐规则讨论(struct) 对齐: 现代计算机中内存空间都是按着byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地 ...

  6. Ubuntu14.04(indigo)实现RGBDSLAMv2(数据集和实时Kinect)

    Ubuntu14.04(indigo)实现RGBDSLAMv2(数据集和实时Kinect v2) 一.在.bag数据集上跑RGBDSLAMv2 RGBDSLAMv2指的是Felix Endres大神在 ...

  7. 基于docker的sqli-labs搭建

    一键代码: curl https://files-cdn.cnblogs.com/files/kagari/sqli-labs.sh|bash https://files-cdn.cnblogs.co ...

  8. Get Raster Properties获得栅格的信息

    Summary Returns the properties of a raster dataset. Usage The property returned will be displayed in ...

  9. Understanding Models, Views, and Controllers (C#)

    https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/overview/understanding-models- ...

  10. 超详细MySQL安装及基本使用教程

    一.下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL. 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Commun ...