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

每日OJ_牛客_kotori和素因子_DFS_C++_Java

目录

牛客_kotori和素因子_DFS

题目解析

C++代码

Java代码


牛客_kotori和素因子_DFS

kotori和素因子

描述:

kotori拿到了一些正整数。她决定从每个正整数取出一个素因子。但是,kotori有强迫症,她不允许两个不同的正整数取出相同的素因子。

她想知道,最终所有取出的数的和的最小值是多少?

注:若 a mod k==0,则称 k 是 a 的因子。若一个数有且仅有两个因子,则称其是素数。显然1只有一个因子,不是素数。

输入描述:

第一行一个正整数 n ,代表kotori拿到正整数的个数。 第二行共有 n 个数 ai,表示每个正整数的值。 保证不存在两个相等的正整数。

1≤n≤10

2≤ai≤1000

输出描述:

一个正整数,代表取出的素因子之和的最小值。若不存在合法的取法,则输出-1。


题目解析

        这道题目要求为数组中的每个数选择一个互不重复的质因数,使得这些质因数的和最小。通过回溯法(DFS)枚举所有可能的质因数组合,并在过程中剪枝和记录最小值,最终可以得到答案。如果没有合法组合,则返回-1。这是一种典型的组合优化问题,适合用深度优先搜索来解决。

C++代码

#include <iostream>
#include <set>
#include <vector>
#include <cmath>
using namespace std;int ret = 0x3f3f3f3f;
bool use[1007]; // 记录路径中⽤了哪些值
int pathSum; // 记录当前路径中所有元素的和
int n = 0;bool is_prime(int n)
{int i = 0;for (i = 2; i <= sqrt(n); i++){if (0 == n % i)return false;}return true;
}void dfs(vector<int>& a, int pos)
{if(pos == n){ret = min(ret, pathSum);return;}for(int i = 2; i <= a[pos]; i++){if(a[pos] % i == 0 && is_prime(i) && !use[i]){pathSum += i;use[i] = true;dfs(a, pos + 1);pathSum -= i;use[i] = false;}}
}int main()
{cin >> n;vector<int> a(n);for(int i = 0; i < n; ++i){cin >> a[i];}dfs(a, 0);if(ret == 0x3f3f3f3f)cout << -1 << endl;elsecout << ret;return 0;
}

Java代码

import java.util.*;
public class Main
{public static int n;public static int[] arr;public static boolean[] use = new boolean[1010]; // 记录路径⾥⾯选了哪些元素public static int path; // 记录路径⾥⾯所有元素的和public static int ret = 0x3f3f3f3f; // 记录最终结果public static boolean isPrim(int x){if(x <= 1)return false;for(int i = 2; i <= Math.sqrt(x); i++){if(x % i == 0) return false;}return true;}public static void dfs(int pos){if(pos == n){ret = Math.min(ret, path);return;}// 枚举 arr[pos] ⾥⾯所有的素因⼦for(int i = 2; i <= arr[pos]; i++){if(arr[pos] % i == 0 && !use[i] && isPrim(i)){path += i;use[i] = true;dfs(pos + 1);// 回溯 - 恢复现场use[i] = false;path -= i;}}}public static void main(String[] args){Scanner in = new Scanner(System.in);n = in.nextInt();arr = new int[n];for(int i = 0; i < n; i++){arr[i] = in.nextInt();}dfs(0);if(ret == 0x3f3f3f3f)System.out.println(-1);elseSystem.out.println(ret);}
}

相关文章:

每日OJ_牛客_kotori和素因子_DFS_C++_Java

目录 牛客_kotori和素因子_DFS 题目解析 C代码 Java代码 牛客_kotori和素因子_DFS kotori和素因子 描述&#xff1a; kotori拿到了一些正整数。她决定从每个正整数取出一个素因子。但是&#xff0c;kotori有强迫症&#xff0c;她不允许两个不同的正整数取出相同的素因子…...

Vue 开发实战:从入门到精通的经验之谈

零基础入门 Vue&#xff0c;10 分钟快速上手教程 一、初识 Vue二、搭建 Vue 开发环境&#xff0c;迈开第一步 Vue 核心概念大揭秘&#xff0c;响应式系统原来是这么回事儿三、Vue 核心概念&#xff1a;响应式系统 模板语法与表达式&#xff0c;玩转 Vue 就靠它啦四、模板语法与…...

快手OneRec 重构推荐系统:从检索排序到生成统一的跃迁

文章目录 1. 背景2. 方法2.1 OneRec框架2.2 Preliminary2.3 生成会话列表2.4 利用奖励模型进行迭代偏好对齐2.4.1 训练奖励模型2.4.2 迭代偏好对齐 3. 总结 昨天面试的时候聊到了OneRec&#xff0c;但是由于上次看这篇文章已经是一个月之前&#xff0c;忘得差不多了&#xff0c…...

c# 简单实现将Message的内容保存到txt中,超过100个则清理旧文件

using System; using System.IO; using System.Threading;public static class LogManager {private static readonly object _fileLock new object(); // 线程安全锁private const int MaxFiles 100; // 最大文件数限制private const string LogDire…...

精打细算 - GPU 监控

精打细算 - GPU 监控 在上一篇,咱们历经千辛万苦,终于让应用程序在 Pod 的“驾驶舱”里成功地“点火”并用上了 GPU。太棒了!但是,车开起来是一回事,知道车速多少、油耗多少、引擎水温是否正常,则是另一回事,而且同样重要,对吧? 我们的 GPU 应用跑起来了,但新的问题…...

软件测试的页面交互标准:怎样有效提高易用性

当用户遇到"反人类"设计时 "这个按钮怎么点不了&#xff1f;"、"错误提示完全看不懂"、"我输入的内容去哪了&#xff1f;"——这些用户抱怨背后&#xff0c;都指向同一个问题&#xff1a;页面交互的易用性缺陷。作为软件测试工程师&a…...

共享单车出行规律与决定因素的空间交互分析——以北京六大区为例

共享单车出行规律与决定因素的空间交互分析——以北京六大区为例 原文&#xff1a;Spatial Interaction Analysis of Shared Bicycles Mobility Regularity and Determinants: A Case Study of Six Main Districts, Beijing 这篇文章主要研究了北京六个主要城区共享单车的流动…...

Windows上安装FFmpeg的详细指南

1.下载FFmpeg 访问FFmpeg官方下载页面&#xff1a;https://ffmpeg.org/download.html 点击"Windows builds from gyan.dev"或"Windows builds by BtbN" gyan.dev版本&#xff1a;https://www.gyan.dev/ffmpeg/builds/ BtbN版本&#xff1a;https://githu…...

React-在使用map循环数组渲染列表时须指定唯一且稳定值的key

在渲染列表的时候&#xff0c;我们须给组件或者元素分配一个唯一值的key, key是一个特殊的属性&#xff0c;不会最终加在元素上面&#xff0c;也无法通过props.key来获取&#xff0c;仅在react内部使用。react中的key本质是服务于diff算法, 它的默认值是null, 在diff算法过程中…...

Nodejs数据库单一连接模式和连接池模式的概述及写法

概述 单一连接模式和连接池模式是数据库连接的两种主要方式&#xff1a; 单一连接模式&#xff1a; 优点&#xff1a;实现简单&#xff0c;适合小型应用缺点&#xff1a;每次请求都需要创建新连接&#xff0c;连接创建和销毁开销大&#xff0c;并发性能差&#xff0c;容易出…...

作业2 CNN实现手写数字识别

# 导入必要库 import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 用于高级可视化 from tensorflow import keras from tensorflow.keras import layers from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import time # 用于…...

整流二极管详解:原理、作用、应用与选型要点

一、整流二极管的基本定义 整流二极管是一种利用PN结单向导电性将交流电&#xff08;AC&#xff09;转换为直流电&#xff08;DC&#xff09;的半导体器件。其核心特性是正向导通、反向截止&#xff0c;允许电流仅沿单一方向流动。 典型结构&#xff1a;硅材料&#xff08;正向…...

WordPress自定义页面与文章:打造独特网站风格的进阶指南

文章目录 引言一、理解WordPress页面与文章的区别二、主题与模板层级&#xff1a;自定义的基础三、自定义页面模板&#xff1a;打造专属页面风格四、自定义文章模板&#xff1a;打造个性化文章呈现五、使用自定义字段和元数据&#xff1a;增强内容灵活性六、利用WordPress钩子&…...

PHP最新好看UI个人引导页网页源码

PHP最新好看UI个人引导页网页源码 采用PHP、HTML、CSS及JavaScript等前端技术&#xff0c;构建了一个既美观又实用的个人主页解决方案。 源码设计初衷在于提供一个高度可定制、跨平台兼容的模板&#xff0c;让用户无需深厚的编程基础&#xff0c;即可快速搭建出专业且富有创意的…...

jQuery — 动画和事件

介绍 jQuery动画与事件是提升网页交互的核心工具。动画方面&#xff0c;jQuery通过简洁API实现平滑过渡效果&#xff0c;提供预设方法如slideUp()&#xff0c;支持.animate()自定义CSS属性动画&#xff0c;并内置队列系统实现动画链式执行。开发者可精准控制动画速度、回调时机…...

arkTs:使用回调函数的方法实现子组件向父组件传值

使用回调函数的方法实现子组件向父组件传值 1 主要内容说明2 实现步骤2.1 父组件中定义回调函数2.2 子组件声明并调用回调函数2.3 注意事项 3 源码3.1 父组件3.2 子组件3.3 源码效果显示截图 4 结语5 定位日期 1 主要内容说明 本文源码是一套 父组件与子组件之间双向数据传递的…...

VBA 调用 dll 优化执行效率

问题描述 之前excel 用vba写过一个应用&#xff0c;请求的是aws lambda 后端, 但是受限于是云端服务&#xff0c;用起来响应特别慢&#xff0c;最近抽了点时间准备优化下&#xff0c;先加了点日志看看是哪里慢了 主方法代码如下&#xff0c;函数的主要目的是将 Excel 工作簿的…...

【机器学习-周总结】-第4周

以下是本周学习内容的整理总结&#xff0c;从技术学习、实战应用到科研辅助技能三个方面归纳&#xff1a; 文章目录 &#x1f4d8; 一、技术学习模块&#xff1a;TCN 基础知识与结构理解&#x1f539; 博客1&#xff1a;【时序预测05】– TCN&#xff08;Temporal Convolutiona…...

Django-Friendship 项目常见问题解决方案

Django-Friendship 项目常见问题解决方案 django-friendship Django app to manage following and bi-directional friendships 项目地址: https://gitcode.com/gh_mirrors/dj/django-friendship Django-Friendship 是一个基于 Django 的应用&#xff0c;它允许创建和管…...

C语言用if else求三个数最小值的一题多解

一、问题引入 假设x,y,z为整数,使用if else语句求x,y,z三个数中的最小值? 二、三种解法 第一种解法: #include<stdio.h> int main(){int x,y,z,min;printf("请输入三个整数&#xff1a;");scanf_s("%d %d %d", &x, &y, &z);//初始值…...

AI时代下 你需要和想要了解的英文缩写含义

在AI智能时代下&#xff0c;越来愈多的企业都开始重视并应用以及开发AI相关产品&#xff0c;这个时候都会或多或少的涉及到英文&#xff0c;英文还好&#xff0c;但是如果是缩写&#xff0c;如果我们没有提前了解过&#xff0c;我们往往很难以快速Get到对方的意思。在这里&…...

uniApp小程序保存定制二维码到本地(V3)

这里的二维码组件用的 uv-ui 的二维码 可以按需引入 QRCode 二维码 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 <uv-qrcode ref"qrcode" :size"280" :value"payCodeUrl"></uv-qrcode>&l…...

2025年对讲机选购指南:聚焦核心参数与场景适配

在无线通信领域&#xff0c;对讲机始终占据着专业通讯工具的独特地位。随着5G时代到来和物联网技术深化&#xff0c;2025年的对讲机市场正呈现智能化、专业化、场景化的升级趋势。面对琳琅满目的产品&#xff0c;选购者需从通信性能、环境适应性、智能集成度三个维度进行综合考…...

C/C++ 动态链接详细解读

1. 为什么要动态链接&#xff1f; 1.1 静态链接浪费内存和磁盘空间 静态链接的方式对于计算机内存和磁盘空间浪费非常严重&#xff0c;特别是多进程操作系统的情况下&#xff0c;静态链接极大的浪费了内存空间。在现在的Linux系统中&#xff0c;一个普通的程序会使用的C 语言静…...

力扣-hot100(无重复字符的最长子串)

3. 无重复字符的最长子串 中等 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。暴力直观解法一&#xff1…...

python flask 项目部署

文章目录 概述 windows 部署准备工作使用 Waitress 部署 Flask 应用 linux 部署**2. 使用 WSGI 服务器**示例&#xff1a;使用 Gunicorn nginx反向代理**5. 使用进程管理工具**示例&#xff1a;使用 Systemd 概述 在 Windows 上使用 Waitress 部署 Flask 应用是一个不错的选择…...

Java课程内容大纲(附重点与考试方向)

本文是在传统 Java 教程框架基础上&#xff0c;加入了重点提示与考试思路&#xff0c;适合用于课程备考、知识查漏与面试准备。 第1章&#xff1a;Java语言基础 ⭐ 重点知识&#xff1a; Java平台特点&#xff08;跨平台性、JVM&#xff09; JDK、JRE、JVM 区别 Java 程序的…...

实现AWS Lambda函数安全地请求企业内部API返回数据

需要编写一个Lambda函数在AWS云上运行&#xff0c;它需要访问企业内部的API获取JSON格式的数据&#xff0c;企业有网关和防火墙&#xff0c;API有公司的okta身份认证&#xff0c;通过公司的域账号来授权访问&#xff0c;现在需要创建一个专用的域账号&#xff0c;让Lambda函数访…...

面试题--随机(一)

MySQL事务中的ACID特性&#xff1f; A 原子性 事务是一组SQL语句&#xff0c;不可分割 C 一致性 事务中的SQL语句要么同时执行&#xff0c;即全部执行成功&#xff0c;要么全部不执行&#xff0c;即执行失败 I 隔离性 MySQL中的各个事务通过不同的事务隔离等级&#xff0c;产生…...

200+短剧出海平台:谁能成为“海外红果”?

2025年&#xff0c;短剧的国际市场表现令人瞩目。仅在两年前&#xff0c;业界关注的焦点仍是美国市场&#xff0c;如今国产短剧应用已成功打入包括印尼、巴西、美国、墨西哥、印度、菲律宾、泰国、日本、哥伦比亚及韩国在内的多个国家&#xff0c;轻松获得超过500万次下载。 市…...