AcWing 蓝桥杯集训·每日一题2025

devtools/2025/2/28 23:56:30/

题目链接 : 5437. 拐杖糖盛宴

题意: 有m个不同的糖果和n个不同高度的奶龙, 奶龙可以根据自己的身高去吃糖果,糖果垂直于地面,对于一个糖果都需要让每个奶龙尝试能否吃到,如果吃到则减去相应吃到的长度, 奶龙长高吃掉糖果的长度即可,根据长度进行判断, 分类讨论。

解题思路 :
根据糖果个数遍历, 外层遍历糖果, 内层遍历奶龙, 创建一个临时变量去记录每一层糖果目前已经吃掉的高度
如果 已经吃掉的糖果大于等于我们糖果的高度这代表糖果已经吃完, 我们更换下一个糖果, 如果当前奶龙的身高高于糖果的长度, 则比较,当前奶龙的身高能否够着现在糖果的高度 (1) 如果可以则当前奶龙身高加上他吃掉糖果的长度, 如果够不着则换下一个奶龙, 如果奶龙身高高于糖果的长度, 则奶龙吃掉目前糖果所剩所有长度

AC Code

// Problem: 拐杖糖盛宴
// Contest: AcWing
// URL: https://www.acwing.com/problem/content/description/5440/
// Memory Limit: 64 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
typedef long long ll; // 确保 ll 在使用前被定义
using namespace std;
using i64 = long long;
#define f for(int i = 0; i < n;++i)
#define ff for(int i = 1; i <= n;++i)
#define int long long 
#define In ll n; std::cin >> n;const int mod = 1e9 + 7, N = 1e7;void solve(){int n, m ;std::cin >> n >> m;std::vector<int> a(n), b(m);f std::cin >> a[i];for(int i =  0 ; i < m; i++) std::cin >> b[i];for(int i = 0; i < m; i++) {int tmp = 0;for(int j = 0; j < n; j++) {if(tmp >= b[i]) {break;}if(a[j] <= b[i]) {if(a[j] > tmp) {int x = a[j];a[j] += (a[j] - tmp);tmp = std::max(tmp, x);} else continue;} else {a[j] += (b[i] - tmp);break;}}}f std::cout << a[i] << "\n";
}signed main(){std::ios::sync_with_stdio(false);std::cin.tie(0); std::cout.tie(0);ll T = 1;//std::cin >> T;for(int i = 1; i <= T; ++i) solve();
}

Java

import java.util.*;
import java.io.*;
public class Main{public static void main(String args[]) throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));StringTokenizer st=new StringTokenizer(bf.readLine());int n=Integer.parseInt(st.nextToken()),m=Integer.parseInt(st.nextToken());long a[]=new long[n];st=new StringTokenizer(bf.readLine());for(int j=0;j<n;j++){a[j]=Integer.parseInt(st.nextToken());}st=new StringTokenizer(bf.readLine());for(int j=0;j<m;j++){int b=Integer.parseInt(st.nextToken());if(b<=a[0]){a[0]+=b;}else{int low=0;for(int i=0;i<n;i++){if(a[i]>=low){long high=Math.min(a[i],b);//最高能吃到的高度a[i]+=high-low;low+=high-low;}}}}for(long p:a){bw.write(p+"\n");}bw.flush();}
}

Python3

n,m=map(int,input().split())
a,b=list(map(int,input().split())),list(map(int,input().split()))for i in range(0, m):tmp = 0for j in range(0, n):if tmp >= b[i]:break;if a[j] <= b[i]:if a[j] > tmp:x = a[j]a[j] += (a[j] - tmp)if x > tmp:tmp = xelse:a[j] += (b[i] - tmp)breakfor i in range(0, n):print(a[i])

http://www.ppmy.cn/devtools/163471.html

相关文章

精准识别IP应用场景

基于全球领先的IP应用场景识别服务IPv4/IPv6全量数据库&#xff0c;为企业提供高精度、低延迟的场景化解析能力&#xff0c;助您构建更安全、智能的网络生态。 ​精准识别&#xff0c;毫秒响应 全量数据覆盖&#xff0c;依托全球最大的IP地址库&#xff0c;支持IPv4/IPv6双协…

React 源码揭秘 | commit流程

前面文章所描述的都发生在render过程中。React包含两个过程&#xff0c;即render和commit过程&#xff0c;其中render过程是可以打断的&#xff0c;而commit阶段是不可打断的。 commit阶段可以理解是真正的操作DOM的阶段&#xff0c;其消费render阶段打到Fiber节点上的Flag&am…

会话对象 HttpSession 二、HttpSession失效

session失效有如下几个原因&#xff1a; session.invalidate()方法注销sessionsession超时 <session-config><!-- session的超时时间&#xff0c;以分钟为单位 --><session-timeout>1</session-timeout> </session-config>Cookie被禁用

Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录

一、需求描述 最近经常使用Trae生成一些小组件和功能代码&#xff08;对Trae赶兴趣的可以看之前的文章《TraeAi上手体验》&#xff09;&#xff0c;刚好在用uniapp开发微信小程序时需要开发一个输入密码的弹框组件&#xff0c;于是想用Trae来实现。原型设计稿如下&#xff1a;…

第十章:服务器消费者管理模块

目录 第一节&#xff1a;代码实现 1-1.Consumer类 1-2.QueueConsumer类 1-3.QueueConsumerManger类 第二节&#xff1a;单元测试 下期预告&#xff1a; 服务器的消费者管理模块在mqserver目录下实现。 第一节&#xff1a;代码实现 创建一个名为mq_consumer.hpp的文件&#…

若依Vue,tab切换时实现缓存之前的查询条件、不刷新页面、不请求

1、菜单里面的路由地址和缓存 2、页面中对应路由地址&#xff0c;首字母大写驼峰命名

【Python爬虫(80)】当Python爬虫邂逅边缘计算:探索数据采集新境界

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…

SocketTool、串口调试助手、MQTT中间件基础

目录 一、SocketTool 二、串口通信 三、MQTT中间件 一、SocketTool 1、TCP 通信测试&#xff1a; 1&#xff09;创建 TCP Server 2&#xff09;创建 TCP Client 连接 Socket 4&#xff09;数据收发 在TCP Server发送数据12345 在 TCP Client 端的 Socket 即可收到数据12…