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

蓝桥杯2023年第十四届省赛真题-买瓜--C语言题解

目录

蓝桥杯2023年第十四届省赛真题-买瓜

题目描述

输入格式

输出格式

样例输入

样例输出

提示

【思路解析】

【代码实现】


蓝桥杯2023年第十四届省赛真题-买瓜

时间限制: 3s 内存限制: 320MB 提交: 796 解决: 69

题目描述

小蓝正在一个瓜摊上买瓜。瓜摊上共有 n 个瓜,每个瓜的重量为 Ai 。

小蓝刀功了得,他可以把任何瓜劈成完全等重的两份,不过每个瓜只能劈一刀。

小蓝希望买到的瓜的重量的和恰好为 m 。

请问小蓝至少要劈多少个瓜才能买到重量恰好为 m 的瓜。如果无论怎样小蓝都无法得到总重恰好为 m 的瓜,请输出 −1 。

输入格式

输入的第一行包含两个整数 n, m,用一个空格分隔,分别表示瓜的个数和小蓝想买到的瓜的总重量。

第二行包含 n 个整数 Ai,相邻整数之间使用一个空格分隔,分别表示每个瓜的重量。

输出格式

输出一行包含一个整数表示答案。

样例输入

复制

3 10
1 3 13

样例输出

复制

2

提示

对于 20% 的评测用例,∑n≤10;

对于 60% 的评测用例,∑n≤20;

对于所有评测用例,1 ≤n≤30,1≤ Ai ≤ 109 ,1 ≤ m ≤ 10^9

【思路解析】

这道题是一个很简单的递归可能性的罗列,但是每次递归有三个情况,则时间复杂度为O(3^N),时间复杂度过高,所以需要在递归过程中除掉那些完全不可能的解,使复杂度降低。

【代码实现】

#include<stdio.h>
int n = 0, m = 0, nums[30], min = 100;
long suf[31];
int dfs(int i, double sum, int c) {if (c >= min) return 100;         // 劈瓜的次数大于等于最小值,即使能满足要求m也没有意义,因为它不是最小的if (sum == m) {min = c;return c;}if (sum > m) return 100;          // 如果当前sum大于m,即可提前结束if (i == n) {return 100; //此时已经使用了所有西瓜,也无法满足,直接排除掉}if (suf[i] + sum < m) return 100; // 如果当前sum加上剩余所有值都小于m,即可提前结束int a = dfs(i + 1, sum + nums[i], c); // 全拿走 int b = dfs(i + 1, sum + (nums[i] / 2.0), c + 1); // 拿走一半 int f = dfs(i + 1, sum, c);  // 不拿走 int k = mins(b, f);return mins(a, k);
}
int mins(int a, int b){return a > b? b :a;
}
int main(){scanf("%d %d", &n, &m);int i = 0;for (i = 0; i < n; i++) {scanf("%d", &nums[i]);}for (i = n - 1; i >= 0; i--) {suf[i] = suf[i + 1] + nums[i];}int m = dfs(0, 0, 0);if (m == 100)printf("-1");else{printf("%d\n",m);}return 0;
}

相关文章:

蓝桥杯2023年第十四届省赛真题-买瓜--C语言题解

目录 蓝桥杯2023年第十四届省赛真题-买瓜 题目描述 输入格式 输出格式 样例输入 样例输出 提示 【思路解析】 【代码实现】 蓝桥杯2023年第十四届省赛真题-买瓜 时间限制: 3s 内存限制: 320MB 提交: 796 解决: 69 题目描述 小蓝正在一个瓜摊上买瓜。瓜摊上共有 n 个…...

R语言进行孟德尔随机化+meta分析(1)---meta分析基础

目前不少文章用到了孟德尔随机化meta分析&#xff0c;今天咱们也来介绍一下&#xff0c;孟德尔随机化meta其实主要就是meta分析的过程&#xff0c;提取了孟德尔随机化文章的结果&#xff0c;实质上就是个meta分析&#xff0c;不过多个孟德尔随机化随机化的结果合并更加加强了结…...

网络安全第一次作业

1、什么是防火墙 防火墙是一种网络安全系统&#xff0c;它根据预先确定的安全规则监视和控制传入和传出的网络流量。其主要目的是阻止对计算机或网络的未经授权的访问&#xff0c;同时允许合法通信通过。 防火墙可以在硬件、软件或两者的组合中实现&#xff0c;并且可以配置为根…...

idea设置gradle

1、不选中 2、下面选specified location 指定gradle目录...

基于Elasticsearch的多文档检索 比如 商品(goods)、案例(cases)

概述 Elasticsearch多文档聚合检索 详细 记得把这几点描述好咯&#xff1a;需求&#xff08;要做什么&#xff09; 代码实现过程 项目文件结构截图 演示效果 应用场景 我们需要在五种不同的文档中检索数据。 比如 商品&#xff08;goods&#xff09;、案例&#xff08;ca…...

9月18日,每日信息差

今天是2023年09月19日&#xff0c;以下是为您准备的11条信息差 第一、江苏无锡首次获得6000年前古人类DNA 第二、全球天然钻石价格暴跌。数据显示&#xff0c;国际钻石交易所钻石价格指数在2022年3月达到158的历史峰值&#xff0c;之后一路下跌到目前的110左右&#xff0c;创…...

基于FPGA实现FPDLINK III

功能概述 本模块主要包含FPDLINKIII/CML收发信号与HDMI/SDI/USB信号、千兆网络信号&#xff0c;支持客户按照按照指定功能定制 当前默认功能为FPD LINK III/CML转为HDMI/SDI/UVC信号 性能参数 名称 描述 供电接口 DC12V FPD LINK RX GM8914 FPD LINK TX GM8913 千兆网…...

[补题记录] Atcoder Beginner Contest 309(E)

URL&#xff1a;https://atcoder.jp/contests/abc309 目录 E Problem/题意 Thought/思路 解法一&#xff1a; 解法二&#xff1a; Code/代码 E Problem/题意 一个家庭有 N 个人&#xff0c;根节点为 1&#xff0c;给出 2 ~ N 的父节点。一共购买 M 次保险&#xff0c;每…...

【HarmonyOS】解决API6 WebView跳转外部浏览器问题、本地模拟器启动黑屏

【问题描述1】 HarmonyOS API6 Java开发中使用WebView组件&#xff0c;如果网页中有跳转链接&#xff0c;点击会跳转到手机系统浏览器。 【解决方案】 解决这个问题的方法就是给WebView这种自定义的WebAgent对象。具体代码如下&#xff1a; WebConfig webConfigthis.webView…...

给出三个整数,判断大小

7-2 比较大小 给出三个整数&#xff0c;判断大小。 输入格式: 给出三个整数a,b,c 输出格式: 在一行中依次从小到大的顺序输出&#xff0c;两数之间有一个空格&#xff0c;无多余空格。 输入样例: 在这里给出一组输入。例如&#xff1a; 2 1 5 输出样例: 在这里给出相应的输…...

优化软件系统,解决死锁问题,提升稳定性与性能 redis排队下单

项目背景&#xff1a; 随着用户数量的不断增加&#xff0c;我们的速卖通小管家软件系统面临了一个日益严重的问题&#xff1a;在从存储区提供程序的数据读取器中进行读取时&#xff0c;频繁出现错误。系统报告了一个内部异常: 异常信息如下&#xff1a; 从存储区提供程序的数…...

MyBatisPlus 底层用 json 存储,Java 仍然使用 对象操作

PO 类的字段定义为一个对象&#xff0c;然后使用以下注解修饰 TableField(typeHandler JacksonTypeHandler.class) 当然 jsonTypeHandler 有多种可以选择...

发送验证码倒计时 防刷新重置!!!

需求&#xff1a;发送验证码&#xff0c;每60s可点击发送一次&#xff0c;倒计时中按钮不可点击&#xff0c;且刷新页面倒计时不会重置 可用以下方式避免刷新页面时&#xff0c;倒计时重置 localStorage本地缓存方式 思路&#xff1a; 1.记录倒计时的时间 2.页面加载时&…...

OpenCV项目开发实战--forEach的并行像素访问与其它方法的性能比较

在本教程中,我们将比较Mat 类的forEach方法与 OpenCV 中访问和转换像素值的其他方法的性能。我们将展示forEach如何比简单地使用at方法甚至有效地使用指针算术快得多。 OpenCV 内部有一些隐藏的宝石,有时并不为人所知。这些隐藏的宝石之一是Mat 类的forEach方法,它利用计算…...

cv::Mat 的常见操作方法

cv::Mat是OpenCV库中用于处理图像和矩阵的主要数据结构。以下是一些常见的cv::Mat操作方法&#xff1a; 创建和初始化 cv::Mat::Mat(): 创建一个空的cv::Mat对象。cv::Mat::Mat(int rows, int cols, int type): 创建一个指定行数、列数和数据类型的cv::Mat对象。cv::Mat::Mat(i…...

JVM——11.JVM小结

这篇文章我们来小结一下JVM JVM&#xff0c;即java虚拟机&#xff0c;是java代码运行时的环境。我们从底层往上层来说&#xff0c;分别是硬件部分&#xff0c;操作系统&#xff0c;JVM&#xff0c;jre&#xff0c;JDK&#xff0c;java代码。JVM是直接与操作系统打交道的。JVM也…...

月木学途开发 2.前台用户模块

概述 效果展 数据库设计 会员表 DROP TABLE IF EXISTS user_type; CREATE TABLE user_type (userTypeId int(11) NOT NULL AUTO_INCREMENT,userTypeName varchar(255) DEFAULT NULL,userTypeDesc varchar(255) DEFAULT NULL,PRIMARY KEY (userTypeId) ) ENGINEInnoDB AUTO_I…...

buuctf-ciscn_s_3

一、srop 参考文章-博客园-wudiiv11&#xff08;作者&#xff09;-BUUCTF-ciscn_2019_s_3 参考文章-博客园-z2yh&#xff08;作者&#xff09;-Srop 原理与利用方法 vlun函数中没有分配栈帧&#xff08;指rsp没有增长&#xff0c;也没有压入父函数的rbp&#xff0c;这也导致…...

3D模型格式转换工具HOOPS Exchange协助Epic Games实现CAD数据轻松导入虚幻引擎

一、面临的挑战 Epic Games最为人所知的身份可能是广受欢迎的在线视频游戏Fortnite的开发商&#xff0c;但它也是虚幻引擎背后的团队&#xff0c;虚幻引擎是一种实时3D创作工具&#xff0c;为世界领先的游戏提供动力&#xff0c;并且也被电影电视、建筑、汽车、制造、模拟等领…...

Linux- inode vnode

什么是inode inode 是 UNIX 和 UNIX-like 操作系统中的一个关键概念。它代表了文件系统中文件或目录的元数据。每个文件和目录在文件系统中都有一个与之关联的 inode。这个数据结构存储了关于文件的所有信息&#xff0c;除了其名称和实际数据之外。 以下是 inode 中通常包含的…...

基于OpenClaw构建智能家居环境感知系统:从传感器到自动化规则

1. 项目概述与核心价值如果你正在捣鼓一个智能家居系统&#xff0c;尤其是围绕着OpenClaw这类AI助手来构建&#xff0c;那你可能和我一样&#xff0c;经常遇到一个痛点&#xff1a;家里的设备虽然能联网、能控制&#xff0c;但它们大多“又聋又瞎”。空调能开能关&#xff0c;但…...

从设计到部署:一款面向轻量化产线的6轴关节机器人实战解析

1. 为什么轻量化产线需要6轴关节机器人 在小型工件装配场景中&#xff0c;传统机械臂常遇到两个致命问题&#xff1a;一是庞大的机身挤占产线空间&#xff0c;二是固定轨迹动作难以适应多变的工件姿态。去年我参与改造的一条散热器装配线就遇到过这种情况——原有直角坐标机器人…...

Claude API预算与性能优化实战:四层策略降本增效

1. 项目概述&#xff1a;一个为Claude设计的预算与性能优化技能 最近在折腾Claude API的时候&#xff0c;发现了一个挺有意思的开源项目&#xff0c;叫 budget_and_performance_optimization_claude_skill 。简单来说&#xff0c;这是一个专门为Claude&#xff08;特别是Clau…...

YOLOv5实战:如何一键导出检测框的坐标、类别和置信度到TXT文件(附完整代码)

YOLOv5实战&#xff1a;结构化导出检测结果的工程化解决方案 在计算机视觉项目的实际落地过程中&#xff0c;我们常常需要将模型检测结果以结构化形式保存&#xff0c;用于后续的数据分析、系统集成或模型评估。本文将深入探讨如何通过YOLOv5高效导出检测框的坐标、类别和置信度…...

抖音视频批量下载难题如何解决?douyin-downloader开源工具完整指南

抖音视频批量下载难题如何解决&#xff1f;douyin-downloader开源工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fa…...

DeepSeek RAG pipeline重构实录,KISS检查挽救了87%的推理延迟——从2300ms到290ms的极简跃迁

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek RAG pipeline重构实录&#xff0c;KISS检查挽救了87%的推理延迟——从2300ms到290ms的极简跃迁 在一次线上 P99 延迟告警中&#xff0c;DeepSeek 的 RAG 服务平均响应时间飙升至 2300ms&#…...

可视化大屏怎么做?可视化大屏工具你会用吗?

可视化大屏早已不只是技术人员的专属&#xff0c;越来越多的运营、产品和市场人也开始尝试&#xff0c;但是常常陷入各种问题&#xff1a;比如硬件效果一般、数据堆积没重点、动效杂乱干扰信息传达……其实归根结底&#xff0c;这些问题都指向一个核心&#xff1a;缺少一个专业…...

MATLAB 2024 升级指南:彻底卸载旧版,高效部署新版

1. 为什么需要彻底卸载旧版MATLAB&#xff1f; 每次MATLAB大版本更新都会带来新功能和性能优化&#xff0c;但很多用户直接覆盖安装后常遇到各种奇怪问题。我去年帮实验室处理过几十台电脑的升级故障&#xff0c;90%的问题都源于旧版残留文件。比如有位同学复现图像处理代码时&…...

Zynq/ZynqMP PL端以太网避坑指南:手把手教你配置GMII to RGMII IP(从Vivado到Linux设备树)

Zynq/ZynqMP PL端以太网开发实战&#xff1a;从GMII到RGMII的完整避坑手册 在嵌入式系统开发中&#xff0c;以太网功能几乎是现代设备的标配需求。当使用Xilinx Zynq或ZynqMP系列芯片时&#xff0c;开发者常面临一个关键选择&#xff1a;使用PS端内置的MAC控制器&#xff0c;还…...

TPAMI 投稿微信群成立!

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【顶会/顶刊】投稿交流群 添加微信&#xff1a;CVer2233&#xff0c;助手会拉你进群&#xff01; 扫描下方二维码&#xff0c;加入CVer学术星球&#xff01;可获得最新顶会/顶…...