AtCoder_abc329

比赛链接

A - Spread

A题链接

题目大意

输入一个字符串由大写字母组成的\(S\),输出\(S\)并在每一个字符之间加上空格

解题思路

随便打打就能过.jpg

代码

// Problem: A - Spread
// Contest: AtCoder - Sky Inc, Programming Contest 2023(AtCoder Beginner Contest 329)
// URL: https://atcoder.jp/contests/abc329/tasks/abc329_a
// Memory Limit: 1024 MB
// Time Limit: 2000 ms #include<bits/stdc++.h>
using namespace std;
int main(){
char c=getchar();
while(c!='\n'){
cout<<c<<' ';
c=getchar();
}
return 0;
}

B - Next

B题链接

题目大意

给出\(N(2 \le N \le 100)\)个整数\(A_1,A_2,A_3.....A_N(1 \le A_i \le 100)\),输出其中第二大的整数

解题思路

数据量不大,使用sort()排序之后输出倒数第二个

代码

// Problem: B - Next
// Contest: AtCoder - Sky Inc, Programming Contest 2023(AtCoder Beginner Contest 329)
// URL: https://atcoder.jp/contests/abc329/tasks/abc329_b
// Memory Limit: 1024 MB
// Time Limit: 2000 ms #include<bits/stdc++.h>
using namespace std;
int n;
int a[105];
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
int p=n-1;
while(a[p]==a[p+1])p--;
cout<<a[p];
return 0;
}

C - Count xxx

C题链接

题目大意

输入一个长度为\(N(n \le 10^5)\),由小写字母组成的字符串\(S\),输出\(S\)中由同一字母组成的非空子串的个数(完全相同的子串不会被重复计数)

例如像是:ssskkyskkkky

他有s,ss,sss,k,kk,kkk,kkkk,y这八个符合要求的子串

解题思路

可以枚举a~z这26个字母。对于每一个字母,遍历一次字符串\(S\),记录最长的、连续的、由这个字母构成的子串的长度,那么这个由这个字母构成的子串数量即为该长度数。

代码

// Problem: C - Count xxx
// Contest: AtCoder - Sky Inc, Programming Contest 2023(AtCoder Beginner Contest 329)
// URL: https://atcoder.jp/contests/abc329/tasks/abc329_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms #include<bits/stdc++.h>
using namespace std;
int n,ans;
string s;
int main(){
cin>>n>>s;
s=" "+s;
for(int c='a';c<='z';c++){
int len=0;
for(int i=1;i<=n;i++){
int t=0;
while(s[i]==c&&i<=n)
i++,t++;
len=max(len,t);
}
ans+=len;
}
cout<<ans;
return 0;
}

D - Election Quick Report

D题链接

题目大意

有一场选举,从\(N\)名候选人中选出一名获胜者,候选人编号为\(1,2.....N\)。每张选票只投给一位候选人,第\(i\)张选票投给候选人\(A_i\)。

选票将按从第一张到最后一张的顺序进行计数,每次计数后,将更新并显示当前的获胜者。

在统计的票数中得票最多的候选人是获胜者。如果有多个候选人得票最多,则编号最小的候选人为获胜者。

对于每一个\(i=1,2,....M\),在只计算前\(i\)张选票时确定一名获胜者。

解题思路

我一看见这道题:这不明显是堆吗,简单。

然后很快啊,就打出了第一版代码:

// Problem: D - Election Quick Report
// Contest: AtCoder - Sky Inc, Programming Contest 2023(AtCoder Beginner Contest 329)
// URL: https://atcoder.jp/contests/abc329/tasks/abc329_d
// Memory Limit: 1024 MB
// Time Limit: 2000 ms #include<bits/stdc++.h>
using namespace std;
int n,m;
int vn[200005];
struct node{
int id;
int votes;
bool operator < (node b){
if(votes!=b.votes)
return votes<b.votes;
return id>b.id;
}
};
priority_queue <node> heap;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x;cin>>x;
vn[x]++;
node np;np.id=x,np.votes=vn[x];
heap.push(np);
cout<<heap.top().id<<endl;
}
return 0;
}

然后一编译,发现连编译都过不了!

我查了大概半个小时左右,只知道是priority_queue <node> heap;这一句报错,大概是定义结构体的时候出了什么问题。

然后就打开了浏览器认真思考,发现只要我吧结构体重载运算符的部分改成:

bool operator < (node b) const {
if(votes!=b.votes)
return votes<b.votes;
return id>b.id;
}

加上一个const,问题就神奇的解决了。

代码

见上

随机推荐

  1. 【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像

    关于 Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站.用户在使用Cloud Studio 时无需安装,随时随地打开浏 ...

  2. Hybrid App 技术路径带动性能的提升

    说到 Hybrid App(混合应用)大家都不陌生,因为这种开发模式大行其道发展的这些年取代了很多原生和 Web 应用,为什么大家对这种「Native + HTML5」的开发模式额外偏爱呢? 因为一方 ...

  3. 基于Supabase开发公众号接口

    在<开源BaaS平台Supabase介绍>一文中我们对什么是BaaS以及一个优秀的BaaS平台--Supabase做了一些介绍.在这之后,出于探究的目的,我利用一些空闲时间基于Micros ...

  4. AI绘画StableDiffusion实操教程:可爱头像奶茶小女孩(附高清图片)

    本教程收集于:AIGC从入门到精通教程汇总 今天继续分享AI绘画实操教程,如何用lora包生成超可爱头像奶茶小女孩 放大高清图已放到教程包内,需要的可以自取. 欢迎来到我们这篇特别的文章--<A ...

  5. MySQL实战实战系列 03 事务隔离:为什么你改了我还看不见?

    提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱. 转账过程具体到程序里会有一系列的操作,比如 ...

  6. Vue 核心技术

    1.1 Vue简介 1.1.1 官网 英文官网 中文官网 1.1.2 介绍与描述 动态构建用户界面的 渐进式 JavaScript 框架 作者:尤雨溪 1.1.3 Vue的特点 遵循 MVVM 模式 ...

  7. 【python爬虫】爬虫所需要的爬虫代理ip是什么?

    前言 在进行爬虫程序开发时,经常会遇到访问被限制的网站,这时就需要使用代理 IP 来进行访问.本文将介绍代理 IP 的概念及使用方法,帮助读者更好地应对爬虫程序中的访问限制问题.同时,本文还将提供一些 ...

  8. Trie字典

    Trie树,又叫字典树,前缀树(Prefix Tree),单词查找树,是一种多叉树的结构. {"a","apple","appeal",&q ...

  9. 解决WordPress修改固定链接结构后出现“404 Not Found”的情况

    解决办法 在宝塔面板找到部署的站点设置 点击进入配置文件,复制下方这段代码粘贴进入配置文件,操作完这步,去刷新下我们的网站,再打开文章链接就可以正常打开.访问了. location / { try_f ...

  10. Merkle Tree 简介

    Merkle 树(Merkle Tree)是一种树状数据结构,通常用于验证大规模数据集的完整性和一致性.它的名字来源于其发明者 Ralph Merkle.Merkle 树在密码学.分布式系统和区块链等 ...