蓝桥杯 算法提高 拿糖果
2016-05-19 20:49
113 查看
题目分析
简单的dp,注意要构建素数表#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> using namespace std; const int maxn = 100005; int vis[1005]; int prime[1005]; int dp[maxn]; int init() //构建素数表 { memset(vis,0,sizeof(vis)); int cnt = 0,len = sqrt(maxn) + 1; for(int i = 2; i < len; i++) if(!vis[i]) { prime[cnt++] = i; for(int j = i*i; j < len; j += i) vis[j] = 1; } return cnt; } int main() { int n; int cnt = init(); while(scanf("%d", &n) != EOF) { memset(dp, 0, sizeof(dp)); for(int i = 1; i <= n; i++) { for(int j = 0; j < cnt; j++) { if(prime[j] > sqrt(i)) break; else if(i%prime[j] == 0) dp[i]=max(dp[i], dp[i-2*prime[j]]+prime[j]); } } printf("%d\n", dp ); } return 0; }
相关文章推荐
- 深入理解Activity启动模式(一)–Activity与进程,线程的关系
- hdu4973 A simple simulation problem.(成段更新+下标转化)
- java读写ini文件、FileOutputStream
- 字符与字节
- POJ 1625 Censored!
- DFS解答树的过程(1045)
- MySQL修改root密码的各种方法整理
- 查询MySQL中某个数据库中有多少张表
- 找水王
- 灰色预测--matlab&python实现
- 三种方式展示透明界面
- kafka和flume整合
- 全栈增长工程师指南
- EK算法应用,构图(POJ1149)
- 贯通 Android 底层驱动至应用层APP接口流程
- 文件批量重命名神器:Bulk Rename Utility
- Python教程:[69]strip()函数详解
- 作用域实例
- libjpeg.so.62找不到的问题
- 第13周表格