问题描述
妈妈给小B买了N块糖!但是她不允许小B直接吃掉。
  假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数。这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走P块糖。然后小B就可以接着拿糖。
  现在小B希望知道最多可以拿多少糖。
输入格式
  一个整数N
输出格式
  最多可以拿多少糖
样例输入
15
样例输出
6
数据规模和约定
N <= 100000

我的思路:

1. 觉得有点像背包问题,画树看了一下,可以是7啊?为什么是6?去看了大神的代码,于是发现自己对质因数的概念不了解!!

质因数:能整除给定正整数的质数

柳神:

1. 先找出 <= 根号n 的所有质数,进行存储

2. dp[i] 表示当糖果数为 i 时 最大可以拿的糖果

3. 从1到n开始遍历,当质因子比根号下糖果数大,跳出

当质数可以整除当前糖果数,进行更新:dp[i] = max(dp[i], dp[i-2*prime[j]] + prime[j]),要么没办法拿,要么就是拿了转换成当糖果数-拿取以后的糖果数的 最大拿取数+当前拿的

#include <iostream>
#include <cmath>
using namespace std;
int prime[50000];
int dp[100005];
int book[100005];
int cnt = 0;void create() {int len = sqrt(100005*1.0);for(int i = 2; i <= len; i++) {if(book[i] == 0) {prime[cnt++] = i;for(int j = i * i; j <= len; j = j + i)book[j] = 1;}}
}int main() {create();int n;cin >> n;for(int i = 1; i <= n; i++) {for(int j = 0; j < cnt; j++) {if(prime[j] > sqrt(i*1.0))break;if(i % prime[j] == 0)dp[i] = max(dp[i], dp[i-2*prime[j]] + prime[j]);}}cout << dp[n];return 0;
}

蓝桥杯 ADV-205 算法提高 拿糖果相关推荐

  1. [蓝桥杯]测试题 E 算法提高 我们的征途是星辰大海 题解和C++示例代码

    E 算法提高 我们的征途是星辰大海 时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表 ...

  2. 蓝桥杯题库 算法提高非vip部分(C++、Java)代码实现(251-280)

    文章目录 ADV-251 Petri Net Simulation cpp: java: ADV-252 Navigation cpp: ADV-256 The Sky is the Limit cp ...

  3. 【蓝桥杯练习】算法提高 贪吃的大嘴

    问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能 ...

  4. 【预览】蓝桥杯竞赛python算法笔记 代码模板|吐血总结|蓝桥杯省赛国赛

    [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 完整版链接 文章目录 [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 1 二分算法求分界值 2 双指针算法 2.1 求最长的不包 ...

  5. 蓝桥杯:试题 算法训练 Remember the A La Mode

    蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...

  6. 【完整版】蓝桥杯竞赛python算法笔记 代码模板|吐血总结|蓝桥杯省赛国赛

    蓝桥杯竞赛python算法笔记 代码模板|吐血总结 文章目录 蓝桥杯竞赛python算法笔记 代码模板|吐血总结 1 二分 1.1 二分求最大满足(check红色条件) 1.2 二分求最小满足(che ...

  7. 蓝桥杯之Python算法设计系列(二)

    目录 基础算法案例 全套资源点击此处下载 1.特殊回文数 2.特殊回文数 3.A+B案例 4.数组排序 5.序列求和 6.十六进制转八进制 7.十六进制转十进制 8.查找数字出现次数 9.水仙花 10 ...

  8. 【蓝桥杯】什么算法才是版本答案?近三年(2019-2021)蓝桥杯省赛涉及算法出现频率分析

    2022年的蓝桥杯比赛已经基本报名结束,寒假来临,如何抓住重点,快速掌握各种算法知识,在4月份的蓝桥杯省赛中取得好成绩呢?本文收集了近三年的4场蓝桥杯省赛题目,(2019年,2020年第二场,2020 ...

  9. 蓝桥杯,ACM算法视频及文档资料『免费送』

    欢迎大家加入CSDN-蓝桥杯竞赛社区 https://bbs.csdn.net/forums/lanqiaobei 以下介绍为蓝桥杯参赛视频学习教程资料,以及ACM等高级算法竞赛的高级算法进阶课程(看 ...

  10. 蓝桥杯之Python算法设计系列(一)

    目录 蓝桥杯简介 什么是蓝桥杯? 大赛项目 一.个人赛软件类 二.个人赛电子类 三.青少年创意编程组 四.视觉设计大赛 Python程序设计 注意事项 Python程序语言设计-计算机二级 Pytho ...

最新文章

  1. 解题报告(四)生成函数(ACM/ OI)
  2. 你真的了解try{ return }finally{}中的return?
  3. visio交换机图标_分享 | 华为交换机开局配置一本通,弱电新人学习!
  4. 就喜欢用vSphere部署K8s集群,不全是因为自动化!
  5. FragmentPagerAdapter实现刷新
  6. 儒枭:我看技术人的成长路径
  7. centos mysql导出数据库命令_在centos(linux)下用命令导出mysql数据库数据
  8. VC++六种Runtime Library
  9. dtc mysql_DTCC归来-高可用可扩展数据库架构探讨
  10. 7_26 day28 上节课 复习 27min
  11. mysql单列索引和多列索引_MySQL索引使用说明(单列索引和多列索引)
  12. 滤波器设计软件_浅谈滤波器之——啥是滤波器
  13. 为什么像王者荣耀这样的游戏Server不愿意使用微服务?
  14. java面试题及答案2020 (二十五)
  15. 终端一直显示 (master) ,即终端一直处于master分支下的取消办法
  16. MSP430G2553学习笔记
  17. 在Ubuntu 16.04 中将应用添加到系统服务中
  18. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
  19. 将数据集做成VOC2007格式用于Faster-RCNN训练
  20. 归并排序【算法解析,代码模板】

热门文章

  1. 注入dll到一个进程里面
  2. 【白话科普】上网时遇到的 404 是什么意思?
  3. DevOps,到底是开发还是运维?
  4. 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
  5. 图像分割 2020 最新进展
  6. SVT-AV1:开源编解码最新进展
  7. 实现视频和音频的零延迟是标准的零和博弈
  8. 高品质互动在线课堂:前端开发优化实践
  9. FFmpeg过滤器框架分析
  10. MongoDB 基础浅谈