华为OJ_2129_素数伴侣

2023-05-16

输入:
有一个正偶数N(N≤100),表示待挑选的自然数的个数。后面给出具体的数字,范围为[2,30000]。
输出:
输出一个整数K,表示你求得的“最佳方案”组成“素数伴侣”的对数。
输入: 输入说明
1 输入一个正偶数n
2 输入n个整数

输出:求得的“最佳方案”组成“素数伴侣”的对数。
 
样例输入:
4
2 5 6 13          
样例输出:

2

#include <iostream>
#include <cmath>

using namespace std;

#define N 100
#define M 30000

int isPrime( int nNum );
int getBestSol( int *nNums, char *bUsed, int nLen, int nDoubles = 0 );
char bPrimes[M + 1];

int main( void )
{
	int n;
	int nNums[N];
	char bUsed[N];
	

	bPrimes[0] = 0;
	for( int i = 1; i  <= M; ++i ){
		bPrimes[i] = isPrime( i );
	}

	cin >> n;
	for( int i = 0; i < n; ++i ){
		cin >> nNums[i];
		bUsed[i] = 0;
	}

//	int nDoubles = 0;
	cout << getBestSol( nNums, bUsed, n ) << endl;

	return 0;
}

int isPrime( int nNum )
{
	if( nNum == 1 )
		return 0;
	if( nNum == 2 )
		return 1;
	
	int nSqrt = sqrt( static_cast<double>( nNum ) );
	for( int i = 2; i <= nSqrt; ++i )
		if( nNum % i == 0 )
			return 0;
	return 1;
}

int getBestSol( int *nNums, char *bUsed, int nLen, int nDoubles )
{
	int i = 0;
	while( bUsed[i] && i < nLen )
		++i;
	if( i == nLen )
		return nDoubles;

	bUsed[i] = 1;
	int maxDoubles = 0, nDoublesOut = 0;
	for( int j = i + 1; j < nLen; ++j ){
		if( bUsed[j] == 0 ){
			bUsed[j] = 1;
			int nDoublesIn = ( bPrimes[nNums[i] + nNums[j]] ? ( nDoubles + 1 ) : nDoubles );
			nDoublesOut = getBestSol( nNums, bUsed, nLen, nDoublesIn );
			bUsed[j] = 0;

			if( maxDoubles < nDoublesOut )
				maxDoubles = nDoublesOut;
			if( maxDoubles == nLen / 2 )
				return maxDoubles;
		}
	}
	bUsed[i] = 0;
	return maxDoubles;
}




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OJ_2129_素数伴侣 的相关文章

  • 解决局域网文件共享“****无法复制,指定的网络名不可用”

    今天公司内部局域网文件共享出现 无法复制 xff0c 指定的网络名不再可用 的报错 xff0c 具体错误如下 xff1a 1 考虑到是服务器问题 xff0c 重启服务器无果 xff1b 2 考虑是物理连接故障 xff0c 打算进行其他排错后
  • maven安装教程(结合eclipse和IDEA)

    一 安装maven 本文须知 安装maven环境之前要先安装java jdk环境 没有安装java环境的可以先去看安装JAVA环境的教程 Maven 3 3 require JDK 1 7 及以上 第一步 下载maven 本教程安装的是3
  • 在Eclipse中安装配置JDK11

    下载安装包 从请官方下载 xff0c 地址为 xff1a https www oracle com java technologies javase jdk11 downloads html xff0c 选择相应的版本下载即可 注意 xff
  • Choco-slover的使用

    一 相关资料 choco slover github源代码以及工具下载网址 https github com chocoteam choco solver choco slover 官网文档 https choco solver org c
  • python 进入虚拟环境 source activate 时候报错 Badly placed ()'s

    当想要进入python的指定虚拟环境 venv bin 时使用 source activate报错 source activate Badly placed 39 s 因为当前Linux使用的是 csh 或者fish shell时是无法使用
  • IDEA javadoc快捷键

    思悠悠 xff0c 恨悠悠 xff0c 恨到归时方始休 月明人依楼 白居易 长相思 汴水流 设置快捷键FIle gt Setting gt Keymap gt Other 搜索 Fix doc xff0c 右键 xff1a Add Keyb
  • 常见的关系型数据库(最全收录)

    天子呼来不上船 xff0c 自称臣是酒中仙 杜甫 饮中八仙歌 1 OracleOracle是1983年推出的世界上第一个开放式商品化关系型数据库管理系统 它采用标准的SQL结构化查询语言 xff0c 支持多种数据类型 xff0c 提供面向对
  • Docker报错,(default) No default Boot2Docker ISO found locally, downloading the latest release...

    环境简述 xff1a 系统 xff1a Windows 10家庭版 安装 Hyper V 后 xff0c 安装 Docker For Windows 还是不好使 后面选择下载了 xff0c Docker Toolbox xff0c 一路 n
  • golang学习笔记 casbin授权库学习记录

    目录 权限控制管理模型ACLRBACABAC Casbin介绍Casbin概述Casbin工作原理请求策略匹配器效果 Casbin结合golang基本使用添加policy结合gorm适配器使用对policy经行增删改查 自定义匹配函数 权限
  • 【洛谷】P1626象棋比赛

    题目描述 有 span class hljs keyword N span 个人要参加国际象棋比赛 xff0c 该比赛要进行 span class hljs keyword K span 场对弈 每个人最多参加两场对弈 xff0c 最少参加
  • 四、SLAM学习笔记—— Ubuntu18.04交叉编译OpenCV4.5.5至ARM64位平台firefly-RK3566

    概述 交叉编译大概的意思是指 在PC x86 x64 的机器上编译其他平台如ARM平台的代码 xff0c 这个过程叫做交叉编译 对于交叉编译 xff0c 我们首先确定目标平台的架构 xff0c RK3566的架构是ARMv8 xff0c 6
  • 关于金蝶组件各类报错问题

    最近维护金蝶K3wish xff0c 遇到个别客户端的组件报错问题 xff0c 现整理问题解决方法 xff1a 1 打开金蝶的追踪程序 xff0c 在本机金蝶安装盘下搜索 xff1a KdMainDBG exe程序 xff1b 2 加载进入
  • Charles + Postern 安卓模拟器抓包

    首先 xff0c 要注意的是 xff0c 在安卓7 0以后 xff0c Fiddle和charles这些抓包工具安装的证书 xff0c 会被默认不相信 xff0c 所以按照很多旧的抓包工具的配置过程 xff0c 没有办法成功抓包 今天就在这
  • HTML(一天学完)总结。附上html思维导图

    3 24 偷懒了几天 昨天加今天看完了狂神说的html 因为html和mysql是一起学的 xff0c 我看腻了mysql就去看html 在这里写一篇总结 附上html思维导图 HTML Hyper Text Markup Language
  • TGP漏洞:lol无法正常登录问题

    今天下午发现了个有趣的现象 xff0c 本来是要设置路由器的 xff0c 结果路由器设置好后 xff0c 上网之类的都正常 但就是玩不了lol xff0c 登进去总是提示与服务器无法连接 xff0c 您的网络有问题 好郁闷啊 xff0c 我
  • 代码参数里的 payload 是什么意思???

    首先解释一下什么是 payload payload 字面意思 有效载荷 xff0c 有效负荷 xff0c 有效载重 payload 维基百科payload中的解释 xff1a 在计算机科学与电信领域 xff0c 负载 xff08 英语 xf
  • 树莓派 Volumio 3.5触摸屏(GPIO) 配置教程

    最近咸鱼淘了一个树莓派3B 买成210血亏哦 200以下差不多 做数播 装的Volumio系统 和少帅的i2c转同轴的板 连同壳子140 43 后来又淘了一个3 5寸的TFT小屏幕3 5inch RPi Display LCD wiki 我
  • Ubuntu 16.04 LTS 一键安装VNC

    Ubuntu 16 04 LTS 安装VNC xff0c 在百度和谷歌找了很多教程 xff0c 不是太老 xff0c 就是说的驴唇不对马嘴 xff0c 所以忍不住写一些以正视听 Ubuntu 16 04 LTS是最近出的LTS版本系统 xf
  • OpenMP简介

    01 OpenMP简介 OpenMP xff08 开放式多处理 xff09 是一种应用程序编程接口 xff08 API xff09 xff0c 支持C xff0c C 43 43 和Fortran中的多平台共享内存 多 处 理
  • windows10 ubuntu18.04 CUDA9.2 caffe tensorflow pytorch安装

    文章目录 windows10 安装ubuntu18 04 系统安装1 制作U盘启动盘2 更改英文路径3 更新源4 设置root账号5 安装NVIDIA驱动6 CUDA安装7 CUDNN安装8 Anaconda安装9 Pytorch安装10

随机推荐

  • 场景分类资料

    1 https blog csdn net Wayne2019 article details 78629204 2 场景分类 xff08 1 xff09 研究方法 一 两个步骤 xff08 一 xff09 从图像中获得表现图像场景的图像特
  • ubuntu如何降级到之前的版本

    找出系统已经安装的内核版本 xff0c 在终端里输入命令 xff1a dpkg get selections grep linux image 然后会显示系统中已安装的内核 xff0c 例如 xff1a linux image 3 0 0
  • 你真的了解 bash 的 exec 命令吗?

    前言 bash exec 命令不太常用 xff0c 我对它提供的功能也仅知一二 xff0c 没有掌握全貌 最近遇到了几个问题 xff0c 从问题出发研究了一通找到 exec 命令头上 xff0c 问题迎刃而解后 xff0c 才对 exec
  • [转] linux定义命令别名alias

    转载自 http www linuxso com command alias html 命 令 alias 功能说明 xff1a 设置指令的别名 语 法 xff1a alias 别名 61 指令名称 补充说明 xff1a 用户可利用alia
  • 出现的错误:Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 16; 必须声明元素类型 “configuration

    一 首先上问题程序 Caused by org springframework beans factory BeanCreationException Error creating bean with name 39 sqlSessionF
  • 根据数组对象中的某个属性值删除元素(ts环境)

    原数组 outputItems 61 code 39 0001 39 name this i18n t 39 wordLib bumon 39 code 39 0002 39 name this i18n t 39 wordLib supp
  • 未来已来:数字化时代的商业模式创新-读书笔记

    这段时间 xff0c 读书的效率确实很高 xff0c 趁着这段时期 xff0c 多读几本书 同时梅溪书院的工作人员也很热心 xff0c 可以把新书拆开供读者阅读 这本书站在数字化时代的视野来分析商业模式上的变量与常量 xff0c 帮助理解数
  • eclipse 中运行mapreduce程序相关配置

    本文主要包括三部分内容 一 编译hadoop插件 可以直接下载使用编译好的hadoop eclipse plugin jar xff0c 只要版本兼容就行 我本来一开始就连接成功了 xff0c 被一个异常迷惑了 xff08 这个异常下面将会
  • MATLAB/C语言混编的第一步,在MATLAB R2017b中生成mex文件

    Matlab在科学计算方面的优越性使其成为科研人员的必备软件之一 搭载了大量复杂工具箱 日益优雅的代码编辑器让MATLAB R2017b彻底替代了之前的先辈版本 然而MATLAB毕竟是一个商业化的数学软件 在大型算法的编写和运行上都存在诸多
  • ubuntu18中yolov3检测图片显示进程已杀死

    病因 xff1a 设备带不动YOLO的进程 解决方法 xff1a 此前本人ubuntu的内存设置为2g xff0c 将内存改为4g后再次检测凸显显示检测成功
  • 在ubuntu中安装darknet_ros发送yolo话题

    创建的ros工作空间ros ws 第一步 进入 ros ws src中 打开终端 克隆darknet ros包到该目录中 git clone https github com leggedrobotics darknet ros git 第
  • Linux中为wget命令设置代理

    方法1 xff1a 使用命令参数 e wget本身没有专门设置代理的命令行参数 xff0c 但是有一个 34 e 34 参数 xff0c 可以在命令行上指定一个原本出现在 34 wgetrc 34 中的设置 于是可以变相在命令行上指定代理
  • SUMO等距离或随机车流仿真

    1 使用netedit构建路网 xff0c 由gneE0 xff0c gneE1 xff0c gneE2 xff0c gneE3四个路段构成 xff0c 保存为abc net xml xff1b 2 构建车流文件abc rou xml 下面
  • STM32关于systick计时器时间不对的一点问题

    STM32关于systick计时器时间不对的一点问题 我是新手刚接触STM32 xff0c 我设定的时间总是实际时间的一半 xff0c 检查许久也不知道是哪里出了问题 下面是延时函数和计时器的配置 void SysTick Init u8
  • 项目综合管理:CMMI和敏捷实践分析

    转自 http www examda com pm Know zonghe 20100507 105035776 html 由于上次已经说过CMMI与敏捷的关系在企业宏观面的思考 xff0c 这里只谈在企业实施层面的共同点和区别 一 共同点
  • MySQL 修改root用户密码和设置权限

    方法1 xff1a 用SET PASSWORD命令 mysql u root p mysql gt SET PASSWORD FOR 39 root 39 64 39 localhost 39 61 PASSWORD 39 newpass
  • A-Softmax(SphereFace)的总结及与L-Softmax的对比

    目录 1 A Softmax的推导 2 A Softmax Loss的性质 3 A Softmax的几何意义 4 源码解读 A Softmax的效果 与L Softmax的区别 引言 SphereFace在MegaFace数据集上识别率在2
  • keil编译不过的常见问题

    keil编译不过的常见问题 1 编码方式不统一编译报错例解决方法 改成同一编码方式 2 重复定义编译报错解决方法保证工程里只有一个含有main xff08 xff09 的c文件或者保证USER里只有一个含有main xff08 xff09
  • Chrome 无法携带跨站cookie的各种解决方案

    同源策略的历史及对应的解决方案 当页面内发起请求时 xff0c 会默认携带该域名下的cookie 而cookie同源策略是指 xff1a 除非当前域名和请求域名是同源 xff0c 才会默认携带cookie 这就导致 xff0c localh
  • 华为OJ_2129_素数伴侣

    输入 有一个正偶数N xff08 N 100 xff09 xff0c 表示待挑选的自然数的个数 后面给出具体的数字 xff0c 范围为 2 30000 输出 输出一个整数K xff0c 表示你求得的 最佳方案 组成 素数伴侣 的对数 输入