题目: 2019可以被分解成若干个两两不同的素数,请问不同的分解方案有多少种?

注意:分解方案不考虑顺序,如2+2017=2019和2017+2=2019属于同一种方案。

思路先求出2019内的所有素数时间复杂度O(n)(求质素用的欧拉线性筛法,这部分不理解前面有写https://www.jianshu.com/p/ef57c98c0e4e)

再dfs爆索,中间记得剪枝

#include

#define mem(kk,int) memset(kk,int,sizeof kk);

using namespace std;

typedef long long ll;

vectorprime;//这里写int prime[];也可

bool vis[4000];

ll f[4000][4000];

void init(){//求素数,放入prime里面

for(int i=2;i<=2019;i++){

if(!vis[i])prime.push_back(i);

for(int j=0;i*prime[j]<=2019&&j

vis[i*prime[j]]=true;

if(i%prime[j]==0)break;

}

}

}

ll dfs(ll num,ll sum){

if(f[num][sum]!=-1)return f[num][sum];

if(sum==2019)return 1;

if(num>=prime.size()||sum>2019)return 0;

ll ans=0;

ans+=dfs(num+1,sum);//选

ans+=dfs(num+1,sum+prime[num]);//不选

return f[num][sum]=ans;

}

int main(){

init();

/*for(int i=0;i

cout<

cout<

mem(f,-1);

ll ans=dfs(0,0);

cout<

return 0;

}

第十届蓝桥杯c语言b组试题,2019年第十届蓝桥杯(决赛)国赛B组C++(B)相关推荐

  1. 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)

    2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...

  2. 蓝桥杯第十三届国赛PythonB组题解

    蓝桥杯第十三届国赛PythonB组题解 [写在前边] 这次的题还是比较难的,只做出来7道,交上去6道,还有一半是暴力做的

  3. 蓝桥杯2013年国赛A组——网络寻路(DFS和中转边巧解)

    蓝桥杯2013年国赛A组--网络寻路 1.题目描述 2.输入输出 3.样例输入和输出 4.题目分析 1.首先明确,题目中的目的地有两种,一种是回到原点,一种是到达没有到达的地方 2.在路径中经过的点不 ...

  4. 南林蓝桥杯计算机大赛,我院计算机系在2019年第十届蓝桥杯大赛(省赛)中获得5项一等奖...

    我院计算机系在2019年第十届蓝桥杯大赛(省赛)中获得5项一等奖 在刚刚结束的2019年第十届蓝桥杯全国软件和信息技术专业人才大赛(省赛)中,我院计算机系获得了5项一等奖. 软件和信息技术产业作为我国 ...

  5. 题解动态规划:蓝桥杯2022国赛B组 题解 A题目

    在这组题(蓝桥杯C/C++ B组 国赛)里面挑了几道喜欢的题目,做了一下,笔记思路如下.(其实是我觉得能做出的题 ) 题目图片来源于:CSDN 罚时大师月色 A:2022 [题目大意] 请问2022, ...

  6. c语言第十五周答案,C语言考前练习试题及答案

    C语言考前练习试题及答案 天行健,君子以自強不息,地勢坤,君子以厚德载物.以下是小编为大家搜索整理的C语言考前练习试题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 一.选 ...

  7. 2019年第十届蓝桥杯国赛B组试题D-求值-枚举

    [问题描述] 学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 t,总是可以找到含有 t 个约数的整数. 小明对于含有 t 个约数的最小数非常感兴趣,并把它定义为 St . 例如 S1 = 1 ...

  8. 2019年第十届蓝桥杯国赛B组试题A-平方序列-枚举

    [问题描述] 小明想找到两个正整数 X 和 Y,满足 2019 < X < Y;2019^2 , X^2 , Y^2 组成等差数列. 请你求出在所有可能的解中,X + Y 的最小值是多少? ...

  9. 2019年第十届蓝桥杯国赛B组试题G-排列数-next_permutation枚举,模拟

    在一个排列中,一个折点是指排列中的一个元素,它同时小于两边的元素,或者同时大于两边的元素. 对于一个 1∼n 的排列,如果可以将这个排列中包含 t个折点,则它称为一个 t+1 单调序列. 例如,排列 ...

最新文章

  1. Linux进程查看与管理
  2. Web新动力 ——Ajax
  3. 用telnet命令,POP3接收邮件
  4. Tkinter的OptionMenu组件
  5. 总结redis中对象的类型与编码
  6. 马化腾谈滴滴;苹果供应商研发柔性玻璃;丁磊谈沉迷手机 | 极客头条
  7. jsp- el表达式
  8. ASP.NET开发框架之HIPPO技术内幕(三)--数据库连接
  9. SAS入门 新手必看
  10. 原创的一份游戏创意案
  11. Linux操作系统基本概述
  12. 这也许是史上最有趣的破解软件合集
  13. spider mysql_MySQL存储引擎之Spider内核深度解析
  14. 百度网盘:未知错误播放失败1000
  15. Java DateUtil 时间工具类
  16. 智能纪元,简述NVIDIA的伟大航路
  17. Canvas特效动画
  18. 反三角函数定义域的确定
  19. 【教学】MT4实现任意分钟变周期 灵活K线
  20. 爱普生630k linux驱动下载,爱普生lq-630k驱动

热门文章

  1. 关于印发《会计电算化管理办法》等规章的通知
  2. SAP MPS、MRP名词解释
  3. NUMERIC_CHECK函数解析
  4. 距离剩者为王,服饰企业还要跨过很多道坎
  5. 回顾国产手机4年沉浮,仍然只是靠这三招翻身
  6. heroku能用mysql吗_heroku连接到mysql数据库
  7. 10代cpu装win7_11代CPU共26款型号全曝光:10核心确定没了
  8. CTF--base64编码过程中隐藏信息解密脚本
  9. 计算机辅助教学导学设计研究,《计算机辅助教学》实验报告
  10. 学mysql是学指令吗_学习Mysql (二) 常用指令