Index of super-prime - SGU 116(素数+背包)
2024-09-02 08:10:39
题目大意:素数表2,3,5,7,11.....如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数.....现在给你一个数,求出来这个数由最少的超级素数的和组成,输出这个超级素数。
分析:因为给的数字并不大,所以直接用完全背包求出来即可。
代码如下:
=================================================================================================================================
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; const int MAXN = ;
const int oo = 1e9+; int sup[MAXN], cnt;
int dp[MAXN]; void superPrime()
{
bool used[MAXN]={,};
cnt = ; for(int k=,i=; i<MAXN; i++)
{
if(!used[i])
{
k++;
if(used[k] == )
sup[++cnt] = i;
for(int j=i+i; j<MAXN; j+=i)
used[j] = true;
}
}
} int main()
{
superPrime(); int N, from[MAXN]; scanf("%d", &N); for(int i=; i<=N; i++)
dp[i] = oo; for(int i=; i<=cnt; i++)
for(int j=sup[i]; j<=N; j++)
{
if(dp[j-sup[i]]+ < dp[j])
{
dp[j] = dp[j-sup[i]]+;
from[j] = j-sup[i];
}
} if(dp[N] == oo)
printf("0\n");
else
{
printf("%d\n", dp[N]);
for(int i=N; i!=; i=from[i])
{
printf("%d%c", i-from[i], from[i]?' ':'\n');
}
} return ;
}
最新文章
- 利用Mongoose来结构化模式与验证
- Qt编程&#39;";";hello world
- c语言内存分配-malloc
- SGU 114
- 关于引用mshtml的问题
- 【php】中【event】之实现方式
- JAVA-2-DATA
- 解决Spring中singleton的Bean依赖于prototype的Bean的问题
- python 一个包中的文件调用另外一个包文件 实例
- T-SQL语法基础
- Elixir 单元测试
- Android字符串判断是否包含中文
- ettercap+arpspoof进行HTTP信息嗅探
- 测试那些事儿—Linux搭建环境基础步骤
- 一个简单的Java程序
- 02 - nginx - 反向代理、限速
- (网络流 模板)A Plug for UNIX -- poj -- 1087
- 【CSWS2014 Main Conference】Some Posters
- order by 使用注意
- Python 爬虫实例(3)—— 爬取今日头条as cp 算法 解密
热门文章
- cocos2dx入门分析 hello world
- log4j文件
- Visual Studio 2008中添加运行按钮 转载
- JavaScript 实现触点式弹出菜单插件
- ie9以上浏览器input文本框/密码框后面的小叉子/小眼睛问题
- apache2.4下载与安装
- [我的疑问]String? = ";Skiy Chan"; 中的问号是什么意思?
- input 标签的class 失效
- Python自动化运维之1、Python入门
- __name__ == &#39;__main__&#39;的作用