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

CF Edu 130 A-D vp 补题

CF Edu 130 A-D vp 补题

数模也是终于结束了。开始恢复vp。今天这场vp发挥比上次好一些,三题rank3600+。A,B题做的很顺利。C题标记没弄全多WA了两发。D题是个交互题,也是研究了一下。基本思路正确。

题目链接

A. Parkway Walk 贪心
题意:你依次要去n个地方。每个地方消耗aia_iai的能量。你最开始有m能量,你可以随时停下来休息,可以恢复能量。只有能量大于等于当前地点所需能量才可以前进,询问最小需要恢复的能量。
思路:直接一开始就休息攒够不足的能量再出发即可。所以
ans=min(sum−m,0)ans=min(sum-m,0)ans=min(summ,0)

void Showball(){int n,m;cin>>n>>m;vector<int> a(n);int sum=0;for(auto &x:a) cin>>x,sum+=x;cout<<max(sum-m,0)<<endl;
}

B. Promo 前缀和+贪心
题意:有n件商品,每件商品的价格为pip_ipi,现在商家推出一个活动,买x件物品,这x件物品中的前y个便宜的商品就可以免费(x≥yx\geq yxy)。对于每个x和y,求出最多有多少金额可以免费。
思路:贪心,为了能够免费更多,那么我们只需要买最贵的x个物品,然后我们需要统计出这x个商品中前y个便宜的商品价格总和。
因为有q次询问。所以我们可以用前缀和来解决。就可以先对p从大到小排序,然后求前缀和,那么对于每次询问,我们要求的就是[n−x+1,n−x+y][n-x+1,n-x+y][nx+1,nx+y]这段区间的和。记得开long long,否则会溢出。

void Showball(){LL n,q;cin>>n>>q;vector<LL> a(n+1),s(n+1);for(int i=1;i<=n;i++) cin>>a[i];sort(a.begin()+1,a.end());for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];while(q--){LL x,y;cin>>x>>y;cout<<s[n-x+y]-s[n-x]<<endl;}
}

C. awoo’s Favorite Problem字符串
题意:给你两个长度为n且只含’a’,‘b’,'c’的字符串s和t。问你能否通过以下操作将s变为t。操作1:将"ab"变为“ba”。操作2:将"bc"变为“cb”。
思路:一道乱搞题,做法很多,这里说一下我赛时的想法。赛时也想了比较久,后面没找到什么结论,便开始一位一位讨论。
首先对于该位iii,如果s[i]=t[i]s[i]=t[i]s[i]=t[i],就可以直接跳过。
其次如果t[i]=t[i]=t[i]=‘a’,那么如果s想变成t只有该位为‘a’的情况才可以,否则不符合情况。

如果t[i]=t[i]=t[i]=‘b’,那么除了s[i]该位也为‘b’的情况之外,还可以该位为’a’并且后面有连续的‘a’后接一个‘b’,例如aaab。那么就可以一直进行交换,把后面的‘b’换到这个地方。否则不符合情况。

如果t[i]=t[i]=t[i]=‘c’,那么除了s[i]该位也为‘c’的情况之外,还可以该位为’b’并且后面有连续的‘b’后接一个‘c’,例如bbbc。那么就可以一直进行交换,把后面的‘c’换到这个地方。否则不符合情况。

接着我们把这个步骤进行模拟维护即可。具体实现看代码:
注意边界情况

void Showball(){int n;cin>>n;string s,t;cin>>s>>t;if(s==t) {cout<<"YES"<<endl;return;}s="?"+s+"?";t="?"+t+"?";bool flg=true;for(int i=1;i<=n;i++){if(s[i]==t[i]) continue;if(t[i]=='a') {flg=false;break;} else if(t[i]=='b') {if(s[i]=='a') {int j=i+1;while(j<=n&&s[j]=='a') j++;if(s[j]=='b') swap(s[i],s[j]);else {flg=false;break;} }else {flg=false;break;} }else{if(s[i]=='b') {int j=i+1;while(j<=n&&s[j]=='b') j++;if(s[j]=='c') swap(s[i],s[j]);else {flg=false;break;} }else {flg=false;break;} }}if(flg) cout<<"YES"<<endl;else cout<<"NO"<<endl;
}

D. Guess The String 交互+二分
题意:告诉你一个只含小写字母字符串的长度,你可以进行提问。
1.“?1 i ”会告诉你第i个字符是什么。
2.“? 2 l r ”会告诉你区间l到r之间有多少的不重复的字母。
你最多可以询问26次1,6000次询问2。
最后猜出这个字符串并且输出。
思路:交互题做的不多,赛时的想法是每次先询问1-i区间不同字母个数,如果增加就直接询问该位字母,否则就不断缩小区间找到那个与该位字母相同得到位置。但是没有想到二分优化,超过了询问限制。这题参考了t宝的解法,非常简洁!qrz。

首先,我们需要维护一个b数组,b[i]b[i]b[i]表示当前字符串的第i位字母最后一次出现的下标。我们对b数组进行排序。然后我们要去寻找该位字母在之前字符串最后出现的位置。就可以用二分查询。如果找到了,那么更新一下字符串,并且更新b数组的值。反之,没有找到,那么直接询问1即可,然后将该位置加入b数组。

void Showball(){int n;cin>>n;string s="";auto ask1=[&](int x){cout<<"? 1 "<<x+1<<endl;char res;cin>>res;return res;};auto ask2=[&](int l,int r){cout<<"? 2 "<<l+1<<" "<<r+1<<endl;int res;cin>>res;return res;};vector<int> b;for(int i=0;i<n;i++){sort(b.begin(),b.end());int l=-1,r=(int)b.size()-1;while(l<r){int mid=(l+r+1)>>1;if(ask2(b[mid],i)==(int)b.size()-mid) {l=mid;}else {r=mid-1;}}if(l==-1){s+=ask1(i);b.push_back(i);}else{s+=s[b[l]];b[l]=i;}}cout<<"! "<<s<<endl;
}

相关文章:

CF Edu 130 A-D vp 补题

CF Edu 130 A-D vp 补题 数模也是终于结束了。开始恢复vp。今天这场vp发挥比上次好一些&#xff0c;三题rank3600。A&#xff0c;B题做的很顺利。C题标记没弄全多WA了两发。D题是个交互题&#xff0c;也是研究了一下。基本思路正确。 题目链接 A. Parkway Walk 贪心 题意&am…...

4707: 统计数字个数

描述给定一个非负整数a&#xff0c;求其中含有数字b的个数&#xff08;0<a<2147483647&#xff0c;0<b<9&#xff09;。如100001中含所有0的个数为4&#xff0c;1的个数为2。输入输入数据有多组&#xff0c;每组一行&#xff0c;每行为两个整数&#xff0c;即a和b&…...

ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?

如何理解 Prompt &#xff1f;Prompt Enginneeringprompt 通常指的是一个输入的文本段落或短语&#xff0c;作为生成模型输出的起点或引导。prompt 可以是一个问题、一段文字描述、一段对话或任何形式的文本输入&#xff0c;模型会基于 prompt 所提供的上下文和语义信息&#x…...

Leetcode力扣秋招刷题路-0099

从0开始的秋招刷题路&#xff0c;记录下所刷每道题的题解&#xff0c;帮助自己回顾总结 99. 恢复二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下&#xff0c;恢复这棵树 。 示例 1&#xff1a; 输入…...

消费升级趋势下,平台如何在广告电商模式中攫取新流量

如今电商平台飞速发展&#xff0c;越来越多的人加入电商运营的行列&#xff0c;同行竞争逐渐变得激烈起来&#xff0c;为了能够让平台有更多的展现机会&#xff0c;提升平台的商品转化率&#xff0c;大家都很重视平台的优化&#xff0c;因为一个好的平台可以给自身带来更多的流…...

华为OD机试真题 用 C++ 实现 - 众数和中位数 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

Linux NOR 开发指南

Linux NOR 开发指南 1 简介 编写目的 此文档描述Sunxi NOR 模块的使用方法&#xff0c;为相关人员调试提供指导 适用范围 boot0: 适用于brandy-2.0u-boot: 适用于u-boot-2018kernel: 适用于linux-4.9/linux-5.4 内核 BSP 的开发人员、测试人员 2 模块介绍 2.1 模块功能…...

免费领取丨精算与金融建模行业解决方案白皮书,不要错过!

一、我国精算行业现状 精算学是对人类社会所面临的各种风险及其他客观事务进行量化分析和处理的一门科学。在保险、金融、投资和各类风险管理等许多领域得到广泛应用&#xff0c;尤其在保险和社会保障领域&#xff0c;已成为不可或缺的科学和技术&#xff0c;以保险公司为例&a…...

ideal创建maven项目

前置工作本机安装mavenIdea 设置使用本机maven 工具Settings--->Maven开始创建maven项目创建maven项目&#xff0c;勾选通过模板创建&#xff0c;选择 maven-archetype-webapp 模板GroupId: 公司名倒序ArtifactId: 项目名设置本地maven仓库配置项目文件显示名&#xff0c;和…...

ChatGPT是什么?为何会引爆国内算力需求?

过去十年中&#xff0c;通过“深度学习大算力”从而获得训练模型是实现人工智能的主流技术途径。由于深度学习、数据和算力这三个要素都已具备&#xff0c;全世界掀起了“大炼模型”的热潮&#xff0c;也催生了大批人工智能企业。大模型是人工智能的发展趋势和未来大模型&#…...

【Linux】进程间通信(万字详解)—— 匿名管道 | 命名管道 | System V | 共享内存

&#x1f308;欢迎来到Linux专栏~~进程通信 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤…...

【Database-02】达梦数据库 - DM Manager管理工具安装

1、简介 DM Manager是达梦数据库自带的图形化界面管理工具&#xff0c;在安装达梦数据库的时候就会自动安装。 Linux环境&#xff0c;默认安装路径为&#xff1a;达梦安装目录/tool/manager&#xff0c;如果Linux是安装GUI&#xff0c;那么就可以直接启动使用。 实际大部分使…...

剑指 Offer 42. 连续子数组的最大和

剑指 Offer 42. 连续子数组的最大和 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 输入一个整型数组&#xff0c;数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输…...

双指针 (C/C++)

1. 双指针 双指针算法的核心思想&#xff1a;将暴力解法的时间复杂度&#xff0c;通常是O(N*N)&#xff0c;通过某种特殊的性质优化到O(N)。 做题思路&#xff1a;先想想暴力解法的思路&#xff0c;然后分析这道题的特殊性质&#xff0c;一般是单调性。然后得出双指针算法的思路…...

CVE-2023-23752 Joomla未授权访问漏洞分析

漏洞概要 Joomla 在海外使用较多&#xff0c;是一套使用 PHP 和 MySQL 开发的开源、跨平台的内容管理系统(CMS)。 Joomla 4.0.0 至 4.2.7 版本中的 ApiRouter.php#parseApiRoute 在处理用户的 Get 请求时未对请求参数有效过滤&#xff0c;导致攻击者可向 Joomla 服务端点发送包…...

单通道说话人语音分离——Conv-TasNet(Convolutional Time-domain audio separation Network)

单通道说话人语音分离——Conv-TasNet模型(Convolutional Time-domain audio separation Network) 参考文献&#xff1a;《Conv-TasNet: Surpassing Ideal Time-FrequencyMagnitude Masking for Speech Separation》 1.背景 在真实的声学环境中&#xff0c;鲁棒的语音处理通常…...

华为OD机试真题Python实现【环中最长子串】真题+解题思路+代码(20222023)

环中最长子串 题目 给你一个字符串s,首尾相连成一个环形, 请你在环中找出o字符出现了偶数次最长子字符串的长度. 备注: 1 <= s.lenth <= 5x10^5 s只包含小写英文字母 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 输入是…...

Netcat安装与使用(nc)

Netcat安装与使用1.Netcat简介1.1.Netcat安装1.1.1.安装整体流程1.1.1.1.安装依赖1.1.1.2.安装Netcat1.1.1.3.配置环境变量1.1.1.4.测试1.2.Netcat基本功能1.3.Netcat常用参数2.Netcat用法2.1.前期准备2.2.banner相关信息抓取2.3.端口扫描2.3.1.扫描指定端口2.3.2.扫描指定端口…...

蓝桥杯:聪明的猴子

题目链接&#xff1a;聪明的猴子https://www.lanqiao.cn/problems/862/learning/ 目录 题目描述 输入描述 输出描述 输入输出样例 运行限制 解题思路&#xff1a; 最小生成树 AC代码&#xff08;Java&#xff09;: 课后练习&#xff1a; 题目描述 在一个热带雨林中生存…...

Spring Boot应用如何快速接入Prometheus监控

1. Micrometer简介Micrometer为Java平台上的性能数据收集提供了一个通用的API&#xff0c;它提供了多种度量指标类型&#xff08;Timers、Guauges、Counters等&#xff09;&#xff0c;同时支持接入不同的监控系统&#xff0c;例如Influxdb、Graphite、Prometheus等。可以通过M…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...