AtCoder Beginner Contest 328

A - Not Too Hard (atcoder.jp)

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=10;
int s[N];
int n,x;
void solve() {cin>>n>>x;for(int i=1;i<=n;i++) cin>>s[i];int ans=0;for(int i=1;i<=n;i++){if(s[i]<=x) ans+=s[i];}cout<<ans<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

B - 11/11 (atcoder.jp)

直接暴力循环

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=110;
int d[N];
int n;
void solve() {cin>>n;for(int i=1;i<=n;i++) cin>>d[i];int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=d[i];j++){string s=to_string(i)+to_string(j);bool ok=true;for(int k=1;k<(int)s.size();k++){if(s[k]!=s[k-1]){ok=false;break;}}if(ok) ans++;}}cout<<ans<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

C - Consecutive (atcoder.jp)

利用前缀和的思想,快速统计某区间满足题意的p的个数

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=3e5+10;
int pre[N];
int n,q;
string s;
void solve() {cin>>n>>q;cin>>s;s=' '+s;pre[1]=1;for(int i=2;i<=n;i++){if(s[i]==s[i-1]) pre[i]=pre[i-1]+1;else pre[i]=pre[i-1];}for(int i=0;i<q;i++){int l,r;cin>>l>>r;cout<<pre[r]-pre[l]<<endl;}
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

D - Take ABC (atcoder.jp)

利用string的find函数和erase函数

 

超时代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
string s;
void solve() {cin>>s;auto pos=s.find("ABC");if(pos==s.npos){cout<<s<<endl;return;}while(pos!=s.npos){s.erase(s.begin()+pos,s.begin()+pos+3);pos=s.find("ABC");}cout<<s<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

糊涂了,这题很明显用栈的

然后还是错,想的是判断栈顶是A,然后后面两个字符分别是B和C,但是如果栈里面存的是A和B,然后删了一个ABC之后,下一个刚好是B的话就错了

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
string s;
stack<char>q;
void solve() {cin>>s;int n=s.size();s+='X';for(int i=0;i<n;i++){if(q.size()&&q.top()=='A'&&s[i]=='B'&&s[i+1]=='C') q.pop(),i++;else q.push(s[i]);}string tmp="";while(q.size()){tmp=q.top()+tmp;q.pop();}cout<<tmp<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

如果是存字符的话,可以用string代替栈,每插入一个字符,就判断最后三个字符是否是ABC,也可以用vector代替栈,好处是不仅可以知道栈顶,即最后一个元素,还可以知道倒数第二个,第三个...

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
string s;
void solve() {cin>>s;string tmp="";for(int i=0;i<(int)s.size();i++){tmp.push_back(s[i]);if(tmp.size()>=3&&tmp[tmp.size()-3]=='A'&&tmp[tmp.size()-2]=='B'&&tmp[tmp.size()-1]=='C'){tmp.pop_back();tmp.pop_back();tmp.pop_back();}}cout<<tmp<<endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反汇编语言区分函数和运算符

在汇编语言中&#xff0c;函数和运算符可以通过一些特定的指令和约定来区分。 函数&#xff1a; 函数通常由一系列指令组成&#xff0c;用于执行特定的任务或操作。函数通常具有入口点和出口点&#xff0c;分别表示函数的开始和结束位置。函数通常包含参数传递、局部变量的分配…

windows错误事件 98、41、7000、55、153解决办法

事件错误&#xff1a;98、55、153 疑难解答清单 在系统事件日志中&#xff0c;搜索新技术文件系统 (NTFS) 和磁盘相关的警告和错误。 例如&#xff0c;事件 ID 55、153 或 98。 管理员身份打开CMD&#xff0c;运行命令 chkdsk /scan 并检查结果。 该 chkdsk /scan 命令是只读…

ICMP协议以及报文讲解(ICMP查询报文、ICMP差错报文)

目录 ICMP协议 ICMP报文格式 ICMP回显请求/应答报文 ICMP差错报文 ICMP 宿主机不可达差错报文 ICMP 重定向差错报文 ICMP TTL超时差错报文 ICMP协议 ICMP协议的作用 ICMP&#xff08;Internet Control massage protocol&#xff09;因特网控制协议&#xff0c;主要用来…

C语言再学习 -- 单精度(float)和双精度(double)浮点数 与 十六进制(HEX) 之间转换(转载))

之前讲过浮点数部分&#xff0c;参看&#xff1a;C语言再学习 – 浮点数 现在程序中要将浮点数&#xff0c;通过TCP发送。那得先将其转换为十六进制才行呀。 那么问题就来了。 参看&#xff1a;C语言&#xff1a;单精度(float)和双精度(double)浮点数 与 十六进制(HEX) 之间…

(JAVA)-打印流

打印流是高级流&#xff0c;只能写不能读&#xff0c;只有输出流 只操作文件目的地&#xff0c;不操作数据源 能实现数据的原样输出 printStream:字节打印流 构造方法&#xff1a; 用文件或地址的方式创建字节打印流也会创建一个字节基本流。 字节流底层没有缓存区&#xff…

文档或书籍扫描为 PDF:ScanPapyrus Crack

ScanPapyrus 可让您快速轻松地将文档或书籍扫描为 PDF&#xff0c;批处理模式使扫描过程快速高效&#xff0c;自动处理书籍并将其拆分为单独的页面 用于快速扫描文档、书籍或打印照片的扫描仪软件 快速扫描文档 使用此扫描仪软件&#xff0c;您无需在扫描仪和计算机之间来回移动…

SpringBoot 官方脚手架不再支持Java8和Java11

Spring 官方脚手架不再支持初始化 Java8 和 Java 11 项目&#xff0c;目前仅支持初始化Java17 和 Java21 项目。 阿里巴巴Spring脚手架支持初始化Java8、Java11、Java17、Java19 的项目&#xff0c;不支持初始化Java21的项目。

java简述springboot内置数据库 并举例启动h2内存数据环境

在前面 我们讲了 springboot 给我们提供了 默认的 数据源 默认 HikariCP 以及其他两种内置数据源 持久化技术 JdbcTemplate 那么 说起来很多人难以置信 不过 springboot 也真的给我们内置了数据库技术 而且不止一种 是三种 这三个数据库的特点在于 它们都是用java语言写的 就表…

探索中文文本处理利器 - Python jieba库详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com jieba库介绍 在处理中文文本数据时&#xff0c;分词是一项至关重要的任务。而在Python的工具箱中&#xff0c;jieba库作为一款强大的中文分词工具&#xff0c;为开发者提供了高效而灵活的解决方案。jieba&#…

JDK8新特性:Lambda表达式规则及用法,方法引用

目录 Lambda表达式是JDK8新增的一种语法格式 1.作用 2.用法规则&#xff1a; 3.方法引用 Lambda表达式是JDK8新增的一种语法格式 1.作用 简化匿名内部类的代码写法 Lambad用法前提&#xff1a;只能简化函数式接口&#xff08;一般加有Funcationallnterface&#xff09;&a…

Python dateutil 库:简化日期和时间处理的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;处理日期和时间是常见的任务之一。dateutil库是Python标准库中datetime模块的扩展&#xff0c;提供了许多方便的工具和函数&#xff0c;简化了日期和时间的操作。 安装与基本用法 首先&…

小黑子之——MybatiPlus整合

MybatiPlus学习 一、MybatiPlus简介1.1 入门案例1.2 mybatisPlus概述1.3 总结 二、标准数据层开发2.1 标准的CRUD使用2.2 新增2.3 删除2.4 修改2.5 根据Id查询2.6 查询全部2.7 Lombok2.8 分页功能 三、DQL控制3.1 条件查询方式3.1.1 构建条件查询3.1.2 多条件查询3.1.3 null值判…

运维05:自动化

人工运维时代 运维人员早期需要维护众多的机器&#xff0c;因此需要执行很多重复的劳动&#xff0c;很多机器需要同时部署相同的服务或者是执行相同的命令&#xff0c;还得反复地登录不同的机器&#xff0c;执行重复的动作 自动化运维时代 早期运维人员会结合ssh免密登录&…

载入了名字空间‘htmltools’ 0.5.6,但需要的是>= 0.5.7解决方案

解决方案&#xff1a;删除之前的旧版本安装包&#xff0c;安装新的包 1.卸载之前的安装包 2.关闭R&#xff0c;重新打开 3. # install.packages("htmltools") library(htmltools)

HarmonyOS学习--了解基本工程目录

1.工程级目录 工程的目录结构如下&#xff1a; 其中详细如下&#xff1a; AppScope中存放应用全局所需要的资源文件。entry是应用的主模块&#xff0c;存放HarmonyOS应用的代码、资源等。oh_modules是工程的依赖包&#xff0c;存放工程依赖的源文件。build-profile.json5是工…

Linux_CentOS_7.9 VNC安装卸载以及相关配置开机自启动服务简易记录

VNC安装卸载以及相关配置开机自启动服务&#xff1a; 查看环境&#xff1a;&#xff08;yum镜像源配置可以参考我之前文章里面有详细参考http://t.csdnimg.cn/mzGoI&#xff09; [rootorcl238 ~]# rpm -qa | grep vnc ##查看系统现有VNC软件版本 gtk-vnc2-0.7.0-3.el7.x86…

简易加减运算器的制作----数字电路设计(含proteus仿真)

简易加减运算器的制作 一、功能要求—基本功能 1、自制0-9按键&#xff0c;在一个LED数码管上稳定地显示当前按下的值。&#xff08;基本功能&#xff09; 2、增加、两个按键&#xff0c;实现0-9两个一位数的加法运算&#xff0c;同时在两位LED上稳定地显示运算结果。&#…

MTU与MSS

MTU&#xff1a;一个网络包的最大长度&#xff0c;以太网中一般为1500各字节。 MSS&#xff1a;除去头部之后&#xff0c;一个网络包所能容纳的TCP数据的最大长度。 应用程序调用write后&#xff0c;将要发送的数据被交给TCP/IP协议栈进行。 协议栈不关心应用的数据内容&…

四:爬虫-Cookie与Session实战

四&#xff1a;Cookie与Session实战 ​ 在浏览网站的过程中&#xff0c;我们经常会遇到需要登录的情况&#xff0c;有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站&#xff0c;但是有时候过一段时间就需要重新登录。还有一些网站&#xff0c;在打开浏览器…

c语言归并排序(详解)

归并排序是一种分治算法&#xff0c;它将列表分割成较小的子列表&#xff0c;然后递归地对子列表进行排序&#xff0c;最后将这些子列表合并以产生已排序的列表。基本概念包括&#xff1a; 分割&#xff1a;将列表分割成较小的子列表&#xff0c;直到子列表的长度为1或0。排序…