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

codeforces周赛div3#855记录

目录

总结

一,A. Is It a Cat?

二,B. Count the Number of Pairs

三,C1. Powering the Hero (easy version)

四,C2. Powering the Hero (hard version)


总结

真羡慕ACM校队的同学,能AC七八题,甚至ak

可能别人从div4一道题都做不对,到div3,AC 九题,只需要几个月的时间😲

那么从div3AK到div2AK他们又需要多久呢?也许是半年?

div2AK的实力,拿铜牌是否有希望呢,观望大佬成长

对于字符串,vector, queue的常用函数的使用还很生疏,所幸经过这次锻炼,下次应该可以AC同类型的题

因为不熟练,浪费了接近一半的时间在百度搜vector和queue的用法,以及字符串常用函数

知识点

1,字符串常用函数

头文件#include<cstring>

1,截取子串

s.substr(i)从下标i开始截取到结尾,s.substr(i, j)从下标i开始截取j个字符

2,替换子串

s.replace(i, j, s1)用s1替换s中从下标i开始的j个字符

3,查找子串

s.find(s1) 查找s1在s中第一次出现的下标

s.rfind(s1) 查找s1在s中最后一次出现的下标

4,删除子串

s.erase(i, j)删除从下标i开始的j个字符

关于s.find()补充

#include<iostream>
#include<cstring>
using namespace std;int main()
{string s1 = "babajiaoni";string s2 = "bajiao";string s3 = "babb";if(s1.find(s3) == string::npos) //找不到子串cout<<"找不到子串"<<endl;if(s1.find(s2) != string::npos) //能找到子串cout<<"能找到子串";return 0;
}
找不到子串
能找到子串

2,queue

→ (2条消息) C++优先队列priority_queue详解_priority_queue头文件_是一只派大鑫的博客-CSDN博客

→ 

(5条消息) C++队列queue用法详解(超详细)_轻松学C语言的博客-CSDN博客

3,vector

→ (5条消息) c++ vector详解_~不羁的博客-CSDN博客

反思

只过了2题,第三题一开始尝试vector + priority_queue,但是写了70多行,非常混乱,写写改改,最后还是没过

今早补题,才发现想复杂了,臆想多了一个限制条件,但是样例并没有体现我这个思路的错误

后来拿第三题(easy version)AC的代码提交第四题(hard),发现第四题也直接过了

一,A. Is It a Cat?

Problem - A - Codeforces

标签:模拟,字符串

这个思路不是很清晰,写写改改才AC,代码非常臃肿

用了字符串函数中的s.find()和s.rfind(),头文件是#include<cstring>

关键是,现在codeforces不知道为什么禁止中文注释了,说我不符合utf-8标准。。。。

这里又浪费了10分钟。。

AC  代码

#include<iostream>
#include<cstring> //s.find(s1)
using namespace std;
int main()
{int t, n;string s;cin>>t;while(t--) {int flag = 1;cin>>n;cin>>s;for(int i = 0; i < n; ++i)if(s[i] == 'M' || s[i] == 'E' ||s[i] == 'O' || s[i] == 'W')s[i] += 32;if(s.find('w') == string::npos || s.find('o') == string::npos|| s.find('e') == string::npos || s.find('m') == string::npos) {cout<<"NO"<<endl;continue;}else if(s.find('w') < s.find('o') || s.find('o') < s.find('e')|| s.find('e') < s.find('m')) {cout<<"NO"<<endl;continue;}else if(s.rfind('m') + 1 != s.find('e') ||s.rfind('e') + 1 != s.find('o') ||s.rfind('o') + 1 != s.find('w')) {cout<<"NO"<<endl;continue;}for(int i = 1; i <= s.rfind('m'); ++i)if(s[i] != s[i - 1]) {flag = 0;cout<<"NO"<<endl;break;}for(int i = s.find('e') + 1; i <= s.rfind('e'); ++i)if(s[i] != s[i - 1]) {flag = 0;cout<<"NO"<<endl;break;}for(int i = s.find('o') + 1; i <= s.rfind('o'); ++i)if(s[i] != s[i - 1]) {flag = 0;cout<<"NO"<<endl;break;}for(int i = s.find('w') + 1; i < n; ++i)if(s[i] != s[i - 1]) {flag = 0;cout<<"NO"<<endl;break;}if(flag)cout<<"YES"<<endl;}return 0;
}

二,B. Count the Number of Pairs

Problem - B - Codeforces 

标签:贪心,字符串

 

 初始思路不是很清晰,写了50多行才AC

AC  代码

#include<iostream>
#include<cstring>
using namespace std;
int a[26], b[26];
int main()
{int t, n, k, ans;string s;cin>>t;while(t) {t--;memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));ans = 0;cin>>n>>k;cin>>s;for(int i = 0; i < n; ++i) {if(s[i] >= 'a' && s[i] <= 'z')a[s[i] - 'a']++;if(s[i] >= 'A' && s[i] <= 'Z')b[s[i] - 'A']++;}for(int i = 0; i < 26; ++i) {if(a[i] >= b[i]) {ans += b[i];a[i] -= b[i];b[i] = 0;}else {ans += a[i];b[i] -= a[i];a[i] = 0;}}for(int i = 0; i < 26; ++i) {if(a[i] >= 2)while(k > 0 && a[i] >= 2) {ans += 1;k--;a[i] -= 2;}else if(b[i] >= 2)while(k > 0 && b[i] >= 2) {ans += 1;k--;b[i] -= 2;}if(k == 0) break;}cout<<ans<<endl;}return 0;
}

三,C1. Powering the Hero (easy version)

Problem - C1 - Codeforces

标签:数据结构,贪心 

 

 这题臆想多了一个限制条件,多做了很多无用功,最后还不符合题意

简单的queue使用,其他都不需要了

30行优先队列能搞定的,我一开始愣是结合vector写了70行 

AC  代码

#include<iostream>
#include<queue>
#include<cstdio> //scanf()
using namespace std;
int main()
{int t, n;scanf("%d", &t);while(t) {t--;scanf("%d", &n);long long ans = 0, m;priority_queue<int>q;for(int i  = 0; i < n; ++i) {scanf("%lld", &m);if(m != 0) {q.push(m);}if(m == 0)if(!q.empty()) {ans += q.top();q.pop();}}cout<<ans<<endl;}return 0;
}

四,C2. Powering the Hero (hard version)

标签:数据结构,贪心

同第三题,只是数据量不同,第三题AC  代码提交,也能过

AC  代码

同第3

#include<iostream>
#include<queue>
#include<cstdio> //scanf()
using namespace std;
int main()
{int t, n;scanf("%d", &t);while(t) {t--;scanf("%d", &n);long long ans = 0, m;priority_queue<int>q;for(int i  = 0; i < n; ++i) {scanf("%lld", &m);if(m != 0) {q.push(m);}if(m == 0)if(!q.empty()) {ans += q.top();q.pop();}}cout<<ans<<endl;}return 0;
}

相关文章:

codeforces周赛div3#855记录

目录 总结 一&#xff0c;A. Is It a Cat? 二&#xff0c;B. Count the Number of Pairs 三&#xff0c;C1. Powering the Hero (easy version) 四&#xff0c;C2. Powering the Hero (hard version) 总结 真羡慕ACM校队的同学&#xff0c;能AC七八题&#xff0c;甚至ak …...

2022年考研结果已出,你上岸了吗?

官方公布&#xff1a;2022年考研人数为457万。 2月20号左右&#xff0c;全国考研分数已经陆续公布&#xff0c;现在已经过去一周左右的时间了&#xff0c;你上岸了吗&#xff0c;还是在等调剂&#xff0c;或者已经知道落榜不知道何去何从&#xff1f; 考研的热潮在近几年席卷…...

2023 工业互联网平台:智慧制硅厂 Web SCADA 生产线

我国目前是全球最大的工业硅生产国、消费国和贸易国&#xff0c;且未来该产业的主要增量也将来源于我国。绿色低碳发展已成为全球大趋势和国际社会的共识&#xff0c;随着我国“双碳”目标的推进&#xff0c;光伏产业链快速发展&#xff0c;在光伏装机需求的带动下&#xff0c;…...

6-2 SpringCloud快速开发入门:声明式服务消费 Feign实现消费者

声明式服务消费 Feign实现消费者 使用 Feign实现消费者&#xff0c;我们通过下面步骤进行&#xff1a; 第一步&#xff1a;创建普通 Spring Boot工程 第二步&#xff1a;添加依赖 <dependencies><!--SpringCloud 集成 eureka 客户端的起步依赖--><dependency>…...

Git-学习笔记01【Git简介及安装使用】

Java后端 学习路线 笔记汇总表【黑马-传智播客】Git-学习笔记01【Git简介及安装使用】Git-学习笔记02【Git连接远程仓库】Git-学习笔记03【Git分支】目录 01-git的历史 02-git和svn的对比 03-git的安装 04-向本地仓库中添加文件 05-修改文件内容并提交 06-删除本地仓库中…...

【Python】控制自己的手机拍照,并自动发送到邮箱

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 今天这个案例&#xff0c;就是控制自己的摄像头拍照&#xff0c; 并且把拍下来的照片&#xff0c;通过邮件发到自己的邮箱里。 想完成今天的这个案例&#xff0c;只要记住一个重点&#xff1a;你需要一个摄像头 思路…...

八股文(二)

一、 实现深拷贝和浅拷贝 1.深拷贝 function checkType(any) {return Object.prototype.toString.call(any).slice(8, -1) }//判断拷贝的要进行深拷贝的是数组还是对象&#xff0c;是数组的话进行数组拷贝&#xff0c;对象的话进行对象拷贝 //如果获得的数据是可遍历的&#…...

在CANoe/CANalyzer中观察CAN Message报文的周期Cycle

案例背景&#xff1a; 该篇博文将告诉您&#xff0c;如何直观的&#xff0c;图示化的&#xff0c;查看CAN网络中各CAN Message报文的周期变化。 优质博文推荐阅读&#xff08;单击下方链接&#xff0c;即可跳转&#xff09;&#xff1a; Vector工具链 CAN Matrix DBC CAN M…...

Linux命令·ls

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息…...

Mysql InnoDB 存储引擎笔记

1 存储引擎 简介 Mysql 存储引擎有多种&#xff1a;包括 MyISAM、InnoDB 和 Memory。 其中MyISAM 和 INNODB 的区别&#xff1a; 事务安全&#xff08;MyISAM不支持事务&#xff0c;INNODB支持事务&#xff09;&#xff1b;外键 MyISAM 不支持外键&#xff0c; INNODB支持外…...

智慧工地AI视频分析系统 opencv

智慧工地AI视频分析系统通过pythonopencv网络模型图像识别技术&#xff0c;智慧工地AI视频分析算法自动识别现场人员穿戴是否合规。本算法模型中用到opencv技术&#xff0c;OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Pyth…...

小红书「高效达人筛选攻略」

三八女神节降临&#xff0c;诸多品牌纷纷开启铺垫预热&#xff0c;在各大平台借势宣传。而聚集庞大年轻女性消费群体的小红书&#xff0c;对“她营销”的重要性不言而喻。节点序幕拉开&#xff0c;面对海量达人信息&#xff0c;如何提前积草屯粮、高效备战&#xff1f; 本期千瓜…...

大话数据结构-线性表

1 定义 线性表是零个或多个数据元素的有限序列。 2 抽象数据类型 ADT 线性表(List)Data&#xff1a;线性表的数据对象集合为{al,a2,a3,....an}&#xff0c;每个元素的类型均为DataType。其中&#xff0c;除第一个元素a1外&#xff0c;每一个元素有且只有一个直接前驱元素&…...

分布式缓存 Memcached Linux 系统安装

1.Memcached简介 Memcached是一个开源、高性能&#xff0c;将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数&#xff0c;可以提高动态、数据库驱动之类网站的运行速度。 Memcached在使用是比较简单的&#…...

【数据结构】链表:看我如何顺藤摸瓜

&#x1f451;专栏内容&#xff1a;数据结构⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 文章目录一、前言二、链表1、定义2、单链表Ⅰ、新建一个节点Ⅱ、内存泄漏Ⅲ、插入一个节点Ⅳ、销毁所有节点Ⅴ、反转一个链表3、…...

linux shell 入门学习笔记18 函数开发

概念 函数就是将你需要执行的shell命令组合起来&#xff0c;组成一个函数体。一个完整的函数包括函数头和函数体&#xff0c;其中函数名就是函数的名字。 优点 将相同的程序&#xff0c;定义&#xff0c;封装为一个函数&#xff0c;能减少程序的代码数量&#xff0c;提高开发…...

如何最巧妙回答HR面试“送命题”:你为什么离开上家公司?

一 HR面试存在“送命题”? 一个资深HR朋友聊到,他最近pass掉一个名校高材生。 其实洽谈过程还比较愉悦,小姑娘名校毕业,落落大方,薪酬要求比较合理,各方面都比较符合,最后就在决定要录用时,HR朋友随口问了句 “你为什么离开上家公司?”,小姑娘也是随口说了句“我不喜…...

注意力机制详解系列(五):分支与时间注意力机制

&#x1f468;‍&#x1f4bb;作者简介&#xff1a; 大数据专业硕士在读&#xff0c;CSDN人工智能领域博客专家&#xff0c;阿里云专家博主&#xff0c;专注大数据与人工智能知识分享&#xff0c;公众号&#xff1a;GoAI的学习小屋&#xff0c;免费分享书籍、简历、导图等资料&…...

创宇盾重保经验分享,看政府、央企如何防护?

三月重保已经迫近&#xff0c;留给我们的准备时间越来越少&#xff0c;综合近两年三月重保经验及数据总结&#xff0c;知道创宇用实际案例的防护效果说话&#xff0c;深入解析为何创宇盾可以在历次重保中保持“零事故”成绩&#xff0c;受到众多部委、政府、央企/国企客户的青睐…...

软件测试面试汇总

在浏览器中输入 URL&#xff0c;回车后发生了什么&#xff1f; 在浏览器中输入URL并按下回车键后&#xff0c;大致流程如下&#xff1a; 1、浏览器解析 URL&#xff0c;提取出协议&#xff08;例如HTTP、HTTPS)、主机名和路径等信息。 2、浏览器查找该URL的缓存记录&#xff0…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...