第十届蓝桥杯c语言b组试题,2019年第十届蓝桥杯(决赛)国赛B组C++(B)
题目: 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)相关推荐
- 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)
2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...
- 蓝桥杯第十三届国赛PythonB组题解
蓝桥杯第十三届国赛PythonB组题解 [写在前边] 这次的题还是比较难的,只做出来7道,交上去6道,还有一半是暴力做的
- 蓝桥杯2013年国赛A组——网络寻路(DFS和中转边巧解)
蓝桥杯2013年国赛A组--网络寻路 1.题目描述 2.输入输出 3.样例输入和输出 4.题目分析 1.首先明确,题目中的目的地有两种,一种是回到原点,一种是到达没有到达的地方 2.在路径中经过的点不 ...
- 南林蓝桥杯计算机大赛,我院计算机系在2019年第十届蓝桥杯大赛(省赛)中获得5项一等奖...
我院计算机系在2019年第十届蓝桥杯大赛(省赛)中获得5项一等奖 在刚刚结束的2019年第十届蓝桥杯全国软件和信息技术专业人才大赛(省赛)中,我院计算机系获得了5项一等奖. 软件和信息技术产业作为我国 ...
- 题解动态规划:蓝桥杯2022国赛B组 题解 A题目
在这组题(蓝桥杯C/C++ B组 国赛)里面挑了几道喜欢的题目,做了一下,笔记思路如下.(其实是我觉得能做出的题 ) 题目图片来源于:CSDN 罚时大师月色 A:2022 [题目大意] 请问2022, ...
- c语言第十五周答案,C语言考前练习试题及答案
C语言考前练习试题及答案 天行健,君子以自強不息,地勢坤,君子以厚德载物.以下是小编为大家搜索整理的C语言考前练习试题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 一.选 ...
- 2019年第十届蓝桥杯国赛B组试题D-求值-枚举
[问题描述] 学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 t,总是可以找到含有 t 个约数的整数. 小明对于含有 t 个约数的最小数非常感兴趣,并把它定义为 St . 例如 S1 = 1 ...
- 2019年第十届蓝桥杯国赛B组试题A-平方序列-枚举
[问题描述] 小明想找到两个正整数 X 和 Y,满足 2019 < X < Y;2019^2 , X^2 , Y^2 组成等差数列. 请你求出在所有可能的解中,X + Y 的最小值是多少? ...
- 2019年第十届蓝桥杯国赛B组试题G-排列数-next_permutation枚举,模拟
在一个排列中,一个折点是指排列中的一个元素,它同时小于两边的元素,或者同时大于两边的元素. 对于一个 1∼n 的排列,如果可以将这个排列中包含 t个折点,则它称为一个 t+1 单调序列. 例如,排列 ...
最新文章
- Linux进程查看与管理
- Web新动力 ——Ajax
- 用telnet命令,POP3接收邮件
- Tkinter的OptionMenu组件
- 总结redis中对象的类型与编码
- 马化腾谈滴滴;苹果供应商研发柔性玻璃;丁磊谈沉迷手机 | 极客头条
- jsp- el表达式
- ASP.NET开发框架之HIPPO技术内幕(三)--数据库连接
- SAS入门 新手必看
- 原创的一份游戏创意案
- Linux操作系统基本概述
- 这也许是史上最有趣的破解软件合集
- spider mysql_MySQL存储引擎之Spider内核深度解析
- 百度网盘:未知错误播放失败1000
- Java DateUtil 时间工具类
- 智能纪元,简述NVIDIA的伟大航路
- Canvas特效动画
- 反三角函数定义域的确定
- 【教学】MT4实现任意分钟变周期 灵活K线
- 爱普生630k linux驱动下载,爱普生lq-630k驱动