当前位置: 首页 > news >正文

蓝桥杯第十届国B 质数拆分

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

将 2019 拆分为若干个两两不同的质数之和,一共有多少种不同的方法?

注意交换顺序视为同一种方法,例如 2+2017=2019 与 2017+2=2019 视为同一种方法。

方法:动态规划(0-1背包问题)

这个问题可以转化为 0-1背包问题

  • 背包容量 = 2019

  • 物品 = 所有小于 2019 的质数(每个质数只能选或不选)

  • 目标:求恰好装满背包的组合数

#include<iostream>
#include<cmath>
using namespace std;#define int long long int a[2020];
int dp[2020];  //dp[j]表示和为j的组合数 bool prime(int x)
{if(x<2) return 0;if(x==2) return 1;for(int i=2; i<=sqrt(x); ++i){if(x%i==0) return 0;}return 1;
}signed main()
{int cnt = 0;  //记录质数的数量 for(int i=2; i<=2019; ++i){if(prime(i)){a[cnt] = i;cnt++;}}dp[0] = 1;  //初始条件:和为0的组合数为1for(int i=0; i<cnt; ++i){for(int j=2019; j>=a[i]; j--){dp[j] += dp[j - a[i]];} }cout<<dp[2019];return 0;
}
http://www.dtcms.com/a/240036.html

相关文章:

  • 基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
  • 苍穹外卖--缓存菜品
  • 技术栈RabbitMq的介绍和使用
  • 脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
  • 20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题
  • Qt开发输入法-接Qt 相关 编译流程及交叉编译 部署所遇到的问题总结
  • 【Qt】控件 QWidget
  • MySQL 知识小结(一)
  • Zabbix 高可用架构部署方案(2最新版)
  • 板凳-------Mysql cookbook学习 (十--3)
  • 轻量安全的密码管理工具Vaultwarden
  • 第三章 3.1 传感器安全
  • DAP-seq测序(DNA亲和纯化测序)!
  • 西电计组第五章-指令系统
  • LeetCode Hot100刷题——合并两个有序链表
  • LeetCode 0386.字典序排数:细心总结条件
  • 【动态规划】B4336 [中山市赛 2023] 永别|普及+
  • (12)-Fiddler抓包-Fiddler设置IOS手机抓包
  • IDEA运行VUE项目报错相关
  • Trace32 远程调试无法连接问题分析------解决方案
  • 互联网大厂Java求职面试:云原生与微服务架构的深度探讨
  • 使用MFC中的CEvent实现两个线程之间的交替打印
  • 题山采玉:Day3
  • 云原生周刊:k0s 成为 CNCF 沙箱项目
  • Python自然语言处理库之gensim使用详解
  • AspectJ 在 Android 中的完整使用指南
  • WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
  • 能源即服务:智慧移动充电桩的供给模式创新
  • 2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
  • python3基础语法梳理