AtCoder Beginner Contest 372

news2024/10/1 17:42:10

A - delete .

题目:

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int main()
{
    string s;
    cin>>s;
    for(auto &x: s){
        if(x!='.') cout<<x;
    }
    return 0;
}

B - 3^A

题目:

思路:

预处理出3的0~10次方的值,从大到小,找到第一个不大于m的数x,m-=x;

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int main()
{
     int m;
     cin>>m;
     vector<int> b,a;
     int t=1;
     b.push_back(t);
     for(int i=1; i<=10; i++){
        t*=3;
        b.push_back(t);
     }
     int cnt=0;
     int len=b.size();

    //  for(int i=0; i<len; i++) cout<<b[i]<<' ';
    //  cout<<'\n';
     int p=len-1;
     while(m>0){

        while(b[p]>m && p>=0) p--;
        m-=b[p];

        cnt++;
        a.push_back(p);
     }
     cout<<cnt<<'\n';

    // int tt=0;
     for(int i=0; i<a.size(); i++){
        // tt+=b[a[i]];
        cout<<a[i]<<' ';
     }

     cout<<'\n';
    //  cout<<tt<<'\n';
    return 0;
}

C - Count ABC Again

题目:

思路:

先统计出原串中ABC的数量cnt,由于每次只修改一个字符,且该字符只会增加或减少一个ABC,所以可以检查每次操作是否破坏了ABC cnt--,是否增加了ABC cnt++;

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int main()
{
    int n,q;
    cin>>n>>q;
    string s;
    cin>>s;
    vector<int> x(q);
    string c(q,'.');

    string s0="ABC";
    int res=0;
    for(int i=0; i<n; i++){
        if(s[i]=='A'){
            string ss="";
            for(int j=i; j<min(i+3,n); j++){
                ss+=s[j];
            }
            if(ss==s0){
                res++;
            } 
        }
    }

    for(int i=0; i<q; i++){
        cin>>x[i]>>c[i];
        x[i]--;
        int t=x[i];
        if(s[t]=='A' && s[min(n-1,t+1)]=='B' && s[min(n-1,t+2)]=='C'){
            res--;
            // cout<<s[t]<<s[min(n-1,t+1)]<<s[min(n-1,t+2)]<<'\n';
        }
        else if(s[max(0,t-1)]=='A' &&s[t]=='B' && s[min(t+1,n-1)]=='C'){
            res--;
            // cout<<s[max(0,t-1)]<<s[t]<<s[min(n-1,t+1)]<<'\n';
        }
        else if(s[t]=='C' && s[max(0,t-1)]=='B' && s[max(0,t-2)]=='A'){
            // cout<<s[max(0,t-2)]<<s[max(0,t-1)]<<s[t]<<'\n';
            res--;
        }
        // cout<<" r1: "<<res<<'\n';
        s[t]=c[i];
        if(s[t]=='A' && s[min(n-1,t+1)]=='B' && s[min(n-1,t+2)]=='C'){
            res++;
            // cout<<"<<1"<<n-1<<' '<<t+2<<'\n';
            // cout<<res<<'\n';
            // cout<<s[t]<<s[min(n-1,t+1)]<<s[min(n-1,t+2)]<<'\n';
        }
        else if(s[max(0,t-1)]=='A' &&s[t]=='B' && s[min(t+1,n-1)]=='C'){
            // cout<<"<<2";
            res++;
            // cout<<s[max(0,t-1)]<<s[t]<<s[min(n-1,t+1)]<<'\n';
        }
        else if(s[t]=='C' && s[max(0,t-1)]=='B' && s[max(0,t-2)]=='A'){
            // cout<<"<<3";
            // cout<<s[max(0,t-2)]<<s[max(0,t-1)]<<s[t]<<'\n';
            res++;
        }
        if(res<=0) res=0;
        // cout<<s<<'\n';
        // cout<<" r2: ";
        cout<<res<<'\n';
       
    }
        
    
    return 0;
}

D - Buildings:

题目:

思路:

正难则反,反着去思考发现,只需维护一个高度的单调栈即可,如果栈顶元素小于当前元素,将栈顶弹出,直到栈顶不小于当前元素,当前元素入栈,每个位置的答案,为在当前位置元素入栈前,栈的大小。

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
typedef pair<int,int> PII;

int main()
{
    int n;
    cin>>n;
    vector<int> a(n), res(n);

    for(int i=0; i<n; i++) cin>>a[i];

    stack<int> sk;
    for(int i=n-1; i>=0; i--){
        res[i]=sk.size();
        while(sk.size() && sk.top()<a[i]){
            sk.pop();
        }
        sk.push(a[i]);
    }
    for(int i=0; i<n; i++) cout<<res[i]<<' ';
    cout<<'\n';
    return 0;
}

E - K-th Largest Connected Components 

题目:

思路:

并查集(+启发式合并)+维护每个根节点前十大的节点编号

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
typedef pair<int,int> PII;

const int N=2e5+10;
int p[N], sz[N];
vector<int> d[N];

int find(int x)
{
    if(p[x]!=x) p[x]=find(p[x]);
    return p[x];
}

int main()
{
    int n,q;
    cin>>n>>q;
    for(int i=1; i<=n; i++){
        p[i]=i,sz[i]=1;
        d[i].push_back(i);
    } 

    while(q--){
        int op, u, v;
        cin>>op>>u>>v;
       
        if(op==1){

            int pa=find(u), pb=find(v);
            if(pa!=pb){
                if(sz[pa]<sz[pb]){
                    sz[pb]+=sz[pa];
                    p[pa]=pb;
                    for(int i=0; i<d[pa].size(); i++){
                        d[pb].push_back(d[pa][i]);
                    }
                    sort(d[pb].begin(),d[pb].end(),greater<int>());
                    while(d[pb].size()>10){
                        d[pb].pop_back();
                    }
                }
                else{
                    sz[pa]+=sz[pb];
                    p[pb]=pa;
                    for(int i=0; i<d[pb].size(); i++){
                        d[pa].push_back(d[pb][i]);
                    }
                    sort(d[pa].begin(),d[pa].end(),greater<int>());
                    while(d[pa].size()>10){
                        d[pa].pop_back();
                    }
                }
            }
        }
        else{
            int pa=find(u);
            if(d[pa].size()<v) cout<<-1<<'\n';
            else{
                cout<<d[pa][v-1]<<'\n';
            }
        }
    }
    return 0;
}

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

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

相关文章

基于Node.js+Express+MySQL+VUE新闻网站管理系统的设计与实现

1. 引言 随着互联网技术的发展&#xff0c;人们获取信息的方式发生了巨大的变化。传统的新闻媒体逐渐向数字化、智能化方向发展。新闻推荐网站管理系统能够帮助新闻网站更好地管理和推荐新闻内容&#xff0c;提高用户体验。本文将详细介绍一个新闻推荐网站管理系统的整体设计与…

【C++】继承(下)

个人主页~ 继承&#xff08;上&#xff09;~ 继承 四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承以及菱形虚拟继承1、菱形继承2、菱形虚拟继承 八、继承的总结与反思继承和组合 四、派生类的默认成员函数 派生类的构造函数必须调用基类的构造…

(学习记录)使用HAL库 STM32CubeMX——spi(DMA)配置OLED

&#xff08;学习总结&#xff09;STM32CubeMX HAL库教程 学习笔记撰写心得 &#xff08;学习总结&#xff09;STM32CubeMX HAL库教程 学习笔记撰写心得https://blog.csdn.net/Wang2869902214/article/details/142435481 使用HAL库 STM32CubeMX——spi配置 使用硬件spi驱动7针…

element 输入框文字+对应签进行长度 和 的判断

输入文字长度 指定标签的长度 &#xff08;判断长度并提示&#xff09; <div style"position: relative;" classchangyongyu><el-input type"textarea" :autosize"{ minRows: 8, maxRows: 8 }" style"margin-bottom:10px;"…

【React】useEffect

1. 基本介绍 概念 语法 副作用函数依赖项数组&#xff08;空数组时&#xff0c;只会在组件渲染完毕后执行一次副作用函数&#xff09; 2. 使用 import { useEffect, useState } from reactfunction App() {const [value, setValue] useState(0)useEffect(() > {console…

docker-图形化工具-portainer的使用

文章目录 1、安装和启动2、设置登陆密码3、dashboard 上述对容器和镜像的管理都是基于docker客户端的命令来完成&#xff0c;不太方便。为了方便的对docker中的一些对象(镜像、容器、数据卷…)来进行管理&#xff0c;可以使用Portainer来完成。Portainer是一个可视化的容器镜像…

Spring Boot 学习之路 -- Service 层

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码框架基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精…

如何帮助我们改造升级原有架构——基于TDengine 平台

一、简介 TDengine 核心是一款高性能、集群开源、云原生的时序数据库&#xff08;Time Series Database&#xff0c;TSDB&#xff09;&#xff0c;专为物联网IoT平台、工业互联网、电力、IT 运维等场景设计并优化&#xff0c;具有极强的弹性伸缩能力。同时它还带有内建的缓存、…

AI可信度标准与框架

AI 可信度被定义为&#xff1a;无论从技术层面还是社会层面&#xff0c;AI 在执行任务时均能够赢得用户的信任和接受的程度。具体地&#xff0c;一个高可信度的 AI 应包含两个组成部分&#xff0c;这些组成部分应贯穿于系统的整个生命周期&#xff1a; &#xff08;一&#xff…

数据结构 ——— C语言实现动态顺序表

目录 顺序表的概念 顺序表的结构&#xff08;静态顺序表和动态顺序表&#xff09; 1. 静态顺序表&#xff1a;使用固定长度的数组存储元素 2. 动态顺序表&#xff1a;使用动态开辟的数组存储元素 为什么选择实现动态顺序表 静态顺序表的缺点&#xff1a; 动态顺序表的优点…

读构建可扩展分布式系统:方法与实践15可扩展系统的基本要素

1. 可扩展系统的基本要素 1.1. 分布式系统在本质上就是复杂的&#xff0c;你必须考虑多种故障模式&#xff0c;并设计应对所有可能发生的情况的处理方式 1.2. 大规模应用程序需要协调大量的硬件和软件组件&#xff0c;共同实现低延迟和高吞吐量的能力 1.3. 面临的挑战是将所…

入门Django

Django Django 简介URL组成部分详解第一个Django项目创建一个Django项目运行Django项目项目结构介绍project和app的关系 URL与视图函数的映射URL的两种传参方式在URL中携带参数 path函数url路由模块化url反转 Django 简介 Django 是一个高级的 Python Web 框架&#xff0c;用于…

书生白嫖A100活动之——OpenCompass

内容来源&#xff1a;Tutorial/opencompass/readme.md at camp2 InternLM/Tutorial GitHub 概览 在 OpenCompass 中评估一个模型通常包括以下几个阶段&#xff1a;配置 -> 推理 -> 评估 -> 可视化。 配置&#xff1a;这是整个工作流的起点。您需要配置整个评估过…

HTML中的表单(超详细)

一、表单 1.语法 <!-- action&#xff1a;提交的地方 method&#xff1a;提交的方式&#xff08;get会显示&#xff0c;post不会&#xff09; --> <form action"#" method"get"><p>名字&#xff1a;<input name"name" ty…

【Geoserver使用】SRS处理选项

文章目录 前言一、Geoserver的三种SRS处理二、对Bounding Boxes计算的影响总结 前言 今天来看看Geoserver中发布图层时的坐标参考处理这一项。根据Geoserver官方文档&#xff0c;坐标参考系统 (CRS) 定义了地理参考空间数据与地球表面实际位置的关系。CRS 是更通用的模型&…

3. 轴指令(omron 机器自动化控制器)——>MC_MoveFeed

机器自动化控制器——第三章 轴指令 8 MC_MoveFeed变量▶输入变量▶输出变量▶输入输出变量 功能说明▶指令详情▶时序图▶重启运动指令▶多重启动运动指令▶异常 示例程序▶参数设定▶动作示例▶梯形图▶结构文本(ST) MC_MoveFeed 指定自外部输入的中断输入发生位置起的移动距…

2024免费录屏软件的宝藏功能与实用技巧

在手机上操作很多时候为了记录方便都直接截图或者录屏&#xff0c;其实电脑也一样。现在面向电脑的录屏工具纷繁复杂&#xff0c;很容易让我们挑花了眼。今天这篇文章我将介绍几款免费的录屏软件为大家提供参考。 1.福昕录屏大师 链接达达&#xff1a;www.foxitsoftware.cn/R…

深入探索 RUM 与全链路追踪:优化数字体验的利器

作者&#xff1a;梅光辉&#xff08;重彦&#xff09; 背景介绍 随着可观测技术的持续演进&#xff0c;多数企业已广泛采用 APM、Tracing 及 Logging 解决方案&#xff0c;以此强化业务监控能力&#xff0c;尤其在互联网行业&#xff0c;产品的体验直接关系着用户的口碑&…

使用Crawler实例进行网页内容抓取

网页内容抓取的背景 随着互联网的快速发展&#xff0c;网页上的信息量日益庞大。如何从海量的网页中快速、准确地抓取所需信息&#xff0c;成为了一个技术挑战。网页内容抓取技术通过自动化的方式&#xff0c;模拟用户浏览网页的过程&#xff0c;获取网页上的文本、图片、链接…

mybatisplus介绍以及使用(上)

目录 一、概念 1、什么是mybatisplus 2、为什么要使用mybatisplus 二、mybatisplus的使用 1、安装 2、常用注解 3、条件构造器 一、概念 1、什么是mybatisplus MyBatis-Plus&#xff08;简称MP&#xff09;是一个基于MyBatis的增强框架&#xff0c;旨在简化开发、提高…