题意:用最少的super-prime组成n;

找出所有的super-prime数,只有202个。用完全背包记录能取到n值的最少数量。再找出7要哪些元素。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
using namespace std;
const double EPS=1e-;
const int SZ=,INF=0x7FFFFFFF;
typedef long long lon;
bool p[SZ];
int sz,pri[SZ],spr[SZ],ssz;
set<int> st;
int dp[][SZ]; void init()
{
memset(p,,sizeof(p));
for(int i=;i<SZ;++i)
{
if(p[i])
{
for(int j=i*i;j<SZ;j+=i)p[j]=;
pri[++sz]=i;
st.insert(i);
}
}
for(int i=;i<=sz;++i)
{
if(st.find(i)!=st.end())spr[++ssz]=pri[i];
}
} void show(int r,int c)
{
for(int i=;i<=r;++i)
{
for(int j=;j<=c;++j)
{
cout<<dp[i][j]<<" ";
}cout<<endl;
}
} void work(int x)
{
memset(dp,-,sizeof(dp));
int pos=;
dp[][]=;
for(int i=;i<=ssz;++i)
{
if(spr[i]<=x)pos=i;
else break;
for(int j=;j<=x;++j)
{
dp[i][j]=dp[i-][j];
if(j>=spr[i]&&dp[i][j-spr[i]]!=-)
{
//if(i==1)cout<<j<<" "<<dp[i][j-spr[i]]<<endl;
if(dp[i-][j]==-)dp[i][j]=dp[i][j-spr[i]]+;
else dp[i][j]=min(dp[i][j],dp[i][j-spr[i]]+);
}
}
}
//show(pos,x);
//if(x!=6)for(;;);
if(dp[pos][x]==-)
{//if(x!=6)for(;;);
cout<<""<<endl;
return;
}
//if(x!=6)for(;;);
vector<int> res;
for(int i=pos,j=x;i>=&&j>;)
{
if(j>=spr[i]&&dp[i][j-spr[i]]+==dp[i][j])
{
res.push_back(spr[i]);
j-=spr[i];
}
else --i;
} {
cout<<dp[pos][x]<<endl;
for(int i=;i<res.size();++i)
{
if(i)cout<<' ';
cout<<res[i];
}
} } int main()
{
std::ios::sync_with_stdio();
//freopen("d:\\1.txt","r",stdin);
init();
//cout<<ssz<<endl;
int n;
cin>>n;
work(n);
return ;
}

sgu 116 Index of super-prime的更多相关文章

  1. 素数 + 背包 - SGU 116. Index of super-prime

    Index of super-prime Problem's Link Mean: 如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数. 现在给你一个数,求 ...

  2. Index of super-prime - SGU 116(素数+背包)

    题目大意:素数表2,3,5,7,11.....如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数.....现在给你一个数,求出来这个数由最少的超级素数的和组 ...

  3. SGU 106.Index of super-prime

    时间限制:0.25s 空间限制:4M 题目大意:                 在从下标1开始素数表里,下标为素数的素数,称为超级素数(Super-prime),给出一个n(n<=10000) ...

  4. SGU 分类

    http://acm.sgu.ru/problemset.php?contest=0&volume=1 101 Domino 欧拉路 102 Coprime 枚举/数学方法 103 Traff ...

  5. 快速切题 sgu116. Index of super-prime bfs+树思想

    116. Index of super-prime time limit per test: 0.25 sec. memory limit per test: 4096 KB Let P1, P2, ...

  6. Python 之 super & MRO (没有遇到过适用场景)

    WOW!!! 这里wow的是真尼玛绕且没看完, 好困呐,贴上网址,等自己英文好一点再看(https://rhettinger.wordpress.com/2011/05/26/super-consid ...

  7. UESTC 1272 Final Pan's prime numbers(乱搞)

    题目链接 Description Final Pan likes prime numbers very much. One day, he want to find the super prime n ...

  8. poj 1595 Prime Cuts

    Prime Cuts Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10610   Accepted: 4046 Descr ...

  9. Application Error - The connection to the server was unsuccessful. (file:///android_asset/www/index.html)

    问题描述: PhoneGap+Sencha Touch开发的应用,打包后的APP或者调试期间,在启动的时候提示如下信息: Application Error - The connection to t ...

随机推荐

  1. CTC(Connectionist Temporal Classification)介绍

    CTC解决什么问题 CTC,Connectionist Temporal Classification,用来解决输入序列和输出序列难以一一对应的问题. 举例来说,在语音识别中,我们希望音频中的音素和翻 ...

  2. Python: 字符串开头或结尾匹配str.startswith(),str.endswith()

    问题 需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme 等等. 解决方案 1.检查字符串开头或结尾的一个简单方法是使用str.startswith() 或者是str ...

  3. python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值

    三种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,类名就是类对象,city就是类变量, #coding=utf-8 class empl ...

  4. Ubuntu去掉命令行前用户名和主机名方法

    Ubuntu去掉命令行前用户名和主机名方法 $ vi ~/.bashrc 按a或i进入编辑模式 PS1='${debian_chroot:+(debian_chroot)}\w\$ ' 默认为 PS1 ...

  5. P4052 [JSOI2007]文本生成器

    P4052 [JSOI2007]文本生成器 AC自动机+dp 优秀题解传送门 设f[ i ][ j ]表示串的长度为 i ,当前在 j 点时不可识别的串的方案数 最后用总方案数减去不可识别方案数就是答 ...

  6. 简单的Django向HTML展示动态图片 案例——小白

    目标:通过Django向HTML传送图片展示 我的天哪,真是膈应人,网上的案例都不适合我,感觉所有的解决办法在我这里都不行. 好吧~ 是我菜,看不懂人家的代码,那句话叫啥来着?一本好经被傻和尚念歪了. ...

  7. 05: python中的函数

    1.1 python 函数   1.函数作用 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得 ...

  8. 20145105 《Java程序设计》第6周学习总结

    20145105 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 一.InputStream与OutputStream (一)串流设计的概念 输入串流代表对象:j ...

  9. 20145302张薇 《网络对抗》MSF应用基础

    20145302张薇 <网络对抗>MSF应用基础 实验内容 掌握metasploit的基本应用方式 1.主动攻击--ms08_067 2.针对浏览器的攻击--ms11_050 3.针对客户 ...

  10. Android实践项目汇报(四)

    全国天气客户端 本周学习计划 添加修改功能,完成项目 实际完成情况 1.成功显示当天及后几天的天气信息 通过修改chaxun.java程序,比较JSON数据格式中JSONObject("to ...