AtCoder Beginner Contest 380 A-E

news2024/11/17 21:50:22

今天的封面原图 画师DAIKA!! 队友最近老发 去d了一下 大家都来d
久违的单人场 掉分了 D题被硬控一小时 但是也学到了全新guess点 早知道写EF的话应该反而有不小的概率开出来 那么我们话不多说就进入正文吧

AtCoder Beginner Contest 380

A - 123233

题意

给一个长度为6的字符串,满足1个1,2个2,3个3就输出Yes

复盘

最后一个else忘加if甚至wa了一发

代码

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    string s;
    cin>>s;
    int one=0,two=0,three=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='1')
            one++;
        else if(s[i]=='2')
            two++;
        else if(s[i]=='3')
            three++;
    }
    if(one==1 and two==2 and three==3)
    {
        cout<<"Yes";
    }
    else
    {
        cout<<"No";
    }
}

int main()
{
    int T=1;
    //scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

B - Hurdle Parsing

题意

输出每一段连续的-的个数

代码

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    string s;
    cin>>s;
    vector<int> a;
    int now_cnt=0;
    for(int i=1;i<s.size()-1;i++)
    {
        if(s[i]=='-')
            now_cnt++;
        else
        {
            a.push_back(now_cnt);
            now_cnt=0;
        }
    }
    a.push_back(now_cnt);
    for(auto x:a)
        cout<<x<<" ";
    cout<<endl;
}

int main()
{
    int T=1;
    //scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

C - Move Segment

题意

将第k段连续的1放在紧接着第k-1段连续的1的后面

代码

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    int n,k;
    scanf("%d%d",&n,&k);
    string s;
    cin>>s;
    vector<int> one,zero;
    for(int i=0;i<n;i++)
    {
        if(i==0 or s[i]!=s[i-1])
        {
            if(s[i]=='0')
            {
                zero.push_back(i);
            }
            else
            {
                one.push_back(i);
            }
        }
    }
    int cnt=0;
    if(s[0]=='0')
    {
        int i;
        for(i=one[k-1];i<n and s[i]!='0';i++)
        {
            s[i]='0';
            cnt++;
        }
        for(i=zero[k-1];i<zero[k-1]+cnt;i++)
        {
            s[i]='1';
        }
    }
    else
    {
        int i;
        for(i=one[k-1];i<n and s[i]!='0';i++)
        {
            s[i]='0';
            cnt++;
        }
        for(i=zero[k-2];i<zero[k-2]+cnt;i++)
        {
            s[i]='1';
        }
    }
    cout<<s<<endl;
}

int main()
{
    int T=1;
    //scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

D - Strange Mirroring

题意

对字符串做如下操作无限次

  • 先把原本的字符串S大小写调换得到一个新的字符串T
  • 将S更新为S+T

复盘

赛时写的是一个递归往前推的过程,不知道为什么一直RE,理论上不会的啊

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

//01101001100101101001011001101001

char change(char c)
{
    if(c>='a'&&c<='z')
        return c-'a'+'A';
    else
        return c-'A'+'a';
}

int pre[33]={0,0,1,1,0,
             1,0,0,1,
             1,0,0,1,
             0,1,1,0,
             1,0,0,1,
             0,1,1,0,
             0,1,1,0,
             1,0,0,1,};

map<ll,int> mp;
int zhao(ll x)
{
    if(mp[x]!=0)
        return mp[x];
    if(x<=32 && pre[x]==1)
        return mp[x]=1;
    if(x<=32 && pre[x]==0)
        return mp[x]=-1;
    //找到第一个小于等于x的2的幂
    ll now=1;
    while(now<=x)
        now*=2;
    now/=2;
    ll del=x-now-1;
    if(zhao(now-del)==1)
        return mp[x]=-1;
    else
        return mp[x]=1;
}

int main()
{
    string s;
    cin>>s;
    int len=s.size();
    int n;
    cin>>n;
    vector<ll> a(n);
    for(int i=0;i<n;i++)
        cin>>a[i];
    vector<char> ans(n);
    for(int i=0;i<n;i++)
    {
        ll now=a[i];
        ll chu=now/len;
        ll yu=now%len;
        if(yu==0)
        {
            chu--;
            yu=len;
        }
        chu++;
        int status=zhao(chu);
        if(status==-1)
            ans[i]=s[yu-1];
        else
            ans[i]=change(s[yu-1]);
    }
    for(auto x:ans)
        cout<<x<<" ";
    cout<<endl;
    return 0;
}

思路

上面的代码虽然不对,但是看最前面的注释01101001100101101001011001101001,发现我要干什么了嘛,假设第一次重复是原始状态也就是0,第一次就是1,第二次是1,第三次是0,以此类推
如果你还没看出来的话,我们用二进制表示这些下标,分别是

0
1
10
11
100
101
110
111

跟二进制表示下1的个数有关,这也是我刚学到的全新guess点

代码

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

char change(char c)
{
    if(c>='a' and c<='z')
        return c-32;
    return c+32;
}

void solve()
{
    string s;
    cin>>s;
    vector<char> ans;
    int q;
    cin>>q;
    int len=s.size();
    while(q--)
    {
        ll t;
        cin>>t;
//        printf("%d\n",cnt);
        ll chu=t/len;
        ll yu=t%len;
        if(yu==0)
        {
            yu=len;
            chu--;
        }
        ll cnt=popcount((unsigned long long)(chu));
        if(cnt%2==0)
        {
            ans.push_back(s[yu-1]);
        }
        else
        {
            ans.push_back(change(s[yu-1]));
        }
    }
    for(auto x:ans)
    {
        cout << x << " ";
    }
}

int main()
{
    int T=1;
    //scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

E - 1D Bucket Tool

题意

一行中有 N N N 个单元格,编号为 1 1 1 N N N
在每个 1 ≤ i < N 1 \leq i < N 1i<N 单元格中, i i i i + 1 i+1 i+1 单元格相邻。
最初, i i i 单元格被涂上了颜色 i i i
给您 Q Q Q 个查询。请按顺序处理它们。每个查询属于以下两种类型之一。

  • 1 x c:将以下单元格重涂为颜色 c c c :通过重复移动到与当前单元格颜色相同的相邻单元格,从单元格 x x x 到达的所有可到达单元格。
  • 2 c:打印涂上颜色 c c c 的单元格数量。

思路

一片方格一旦某一个瞬间变成了同一个颜色,那么后续永远都是同时变色了,我们可以维护一个set存储每片方格的隔断,给每个点都可以二分查找得到这一段,然后再一起修改,改完之后再往左往右更新隔断

代码

#include <bits/stdc++.h>
#define maxOf(a) *max_element(a.begin(),a.end())
#define minOf(a) *min_element(a.begin(),a.end())
#define all(a) a.begin(),a.end()
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

void solve()
{
    int n,q;
    scanf("%d%d",&n,&q);
    vector<int> ans(n,1);
    set<pair<int,int>> st;
    for(int i=0;i<n;i++)
    {
        st.insert({i,i});
    }
    st.insert({-1,2e9});
    st.insert({n,2e9});
    while(q--)
    {
        int cmd;
        scanf("%d",&cmd);
        if(cmd==1)
        {
            int x,c;
            scanf("%d%d",&x,&c);
            x--;c--;
            auto it=st.lower_bound({x,2e9});
            auto[R,Rc]=*it;
            auto[L,Mc]=*--it;
            auto[_,Lc]=*--it;
            ans[Mc]-=R-L;
            ans[c]+=R-L;
            it++;
            it=st.erase(it);
            if(c==Rc)
                it=st.erase(it);
            if(c!=Lc)
                st.insert({L,c});
        }
        else
        {
            int c;
            scanf("%d",&c);
            c--;
            printf("%d\n",ans[c]);
        }
    }
}

int main()
{
    int T=1;
    //scanf("%d",&T);
    while(T--)
    {
        solve();
    }
    return 0;
}

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

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

相关文章

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质

一、直白解释slam与图优化的结合 我从b站上学习理解的这个概念。 视频的大概位置是1个小时以后&#xff0c;在第75min到80min之间。图优化SLAM是怎么一回事。 slam本身是有运动方程的&#xff0c;也就是运动状态递推方程&#xff0c;也就是预测过程。通过t1时刻&#xff0c…

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下&#xff0c;由于家长的疏忽&#xff0c;将…

stm32——通用定时器时钟知识点

&#xff08;该图来自小破站 铁头山羊老师的stm32标准库教学&#xff09;

GPIO相关的寄存器(重要)

目录 一、GPIO相关寄存器概述 二、整体介绍 三、详细介绍 1、端口配置低寄存器&#xff08;GPIOx_CRL&#xff09;&#xff08;xA...E&#xff09; 2、端口配置高寄存器&#xff08;GPIOx_CRH&#xff09;&#xff08;xA...E&#xff09; 3、端口输入数据寄存器&#xff…

CSS基础也要进行模电实验

盒子阴影 圆角边框已经介绍过哩&#xff0c;现在先介绍一下盒子阴影的效果如何实现 CSS3中新增了盒子阴影&#xff0c;可以使用box-shadow属性为盒子添加阴影 这是固定的语法&#xff1a; text-shadow: h-shadow v-shadow blur color; 它有这些可选的值&#xff1a; 哦。 …

i春秋-登陆(sql盲注爆字段,.git缓存利用)

练习平台地址 竞赛中心 题目描述 先登陆再说 题目内容 就是一个登录框 测试登录 用户名&#xff1a;admin or 11# 密码&#xff1a;随便输 返回密码错误 用户名&#xff1a;随便输 密码&#xff1a;随便输 返回用户名不存在 这里就可以确定时一个bool盲注了 这里提供一个lik…

探索KubeVirt:如何利用InfiniBand提升虚拟机性能

在高性能计算&#xff08;HPC&#xff09;中&#xff0c;网络性能对于集群效率起着至关重要的作用。为了支持大规模并行计算&#xff0c;HPC集群通常依赖高带宽、低延迟的网络&#xff0c;而InfiniBand&#xff08;IB&#xff09;正是其中的首选技术。它能够提供超过100Gbps的带…

基于树莓派的边缘端 AI 目标检测、目标跟踪、姿态估计 视频分析推理 加速方案:Hailo with ultralytics YOLOv8 YOLOv11

文件大纲 加速原理硬件安装软件安装基本设置系统升级docker 方案Demo 测试目标检测姿态估计视频分析参考文献前序树莓派文章hailo加速原理 Hailo 发布的 Raspberry Pi AI kit 加速原理,有几篇文章介绍的不错 https://ubuntu.com/blog/hackers-guide-to-the-raspberry-pi-ai-ki…

小白进!QMK 键盘新手入门指南

经常玩键盘的伙伴应该都知道&#xff0c;现在的键盘市场可谓是百花齐放&#xff0c;已经不是之前的单一功能产品化时代。我们可以看到很多诸如&#xff1a;机械轴键盘、磁轴键盘、光轴键盘、电感轴键盘&#xff0c;以及可能会上市的光磁轴键盘&#xff0c;更有支持屏幕的、带旋…

《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配

文章目录 0. 概述1. 内存碎片问题2. 动态分配3. 首次适配算法4. 最优适配算法5. 最差适配算法 0. 概述 内存分配是操作系统管理过程中很重要的环节&#xff0c;首先需要考虑的是一块连续区域分配的过程&#xff0c;这个过程中会有很多问题&#xff0c;首先比较关注的一个问题是…

vue内置指令和自定义指令

常见的指令&#xff1a; v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简…

蓝桥杯备赛(持续更新)

16届蓝桥杯算法类知识图谱.pdf 1. 格式打印 %03d&#xff1a;如果是两位数&#xff0c;将会在前面添上一位0 %.2f&#xff1a;会保留两位小数 如果是long&#xff0c;必须在数字后面加上L。 2. 进制转化 2.1. 十进制转任意进制&#xff1a; 十进制转任意进制时&#xff…

vue 项目使用 nginx 部署

前言 记录下使用element-admin-template 改造项目踩过的坑及打包部署过程 一、根据权限增加动态路由不生效 原因是Sidebar中路由取的 this.$router.options.routes,需要在计算路由 permission.js 增加如下代码 // generate accessible routes map based on roles const acce…

TensorFlow 2.0 环境配置

官方文档&#xff1a;CUDA Installation Guide for Windows 官方文档有坑&#xff0c;windows的安装指南直接复制了linux的指南内容&#xff1a;忽略这些离谱的信息即可。 可以从官方文档知悉&#xff0c;cuda依赖特定版本的C编译器。但是我懒得为了一个编译器就下载整个visua…

【计算机网络】【传输层】【习题】

计算机网络-传输层-习题 文章目录 10. 图 5-29 给出了 TCP 连接建立的三次握手与连接释放的四次握手过程。根据 TCP 协议的工作原理&#xff0c;请填写图 5-29 中 ①~⑧ 位置的序号值。答案技巧 注&#xff1a;本文基于《计算机网络》&#xff08;第5版&#xff09;吴功宜、吴英…

HarmonyOS本地存储-Preferences(用户首选项)的使用

一&#xff0c;用户首选项简述 ohos.data.preferences (用户首选项) 用户首选项为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。 数据存储形式为键值对&#xff0c;键的类型为字符串型&#xff0c;值的存储数据…

基于Java Web 的家乡特色菜推荐系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【售前方案】工业园区整体解决方案,智慧园区方案,智慧城市方案,智慧各类信息化方案(ppt原件)

基于云计算、物联网、移动通信计算的智慧园区集中运营管理平台是一个高度集成化、智能化的管理系统&#xff0c;它利用先进的技术手段对园区进行全方位的监控和管理。 软件资料清单列表部分文档清单&#xff1a;工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审…

Vue2+ElementUI:用计算属性实现搜索框功能

前言&#xff1a; 本文代码使用vue2element UI。 输入框搜索的功能&#xff0c;可以在前端通过计算属性过滤实现&#xff0c;也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤&#xff0c;后附完整代码&#xff0c;代码中提供的是死数据&#xff0c;可…

CSS实现炫酷的水波纹效果

炫酷的水波纹效果 看好了&#xff0c;下面是我最后的波纹了 实现代码 HTML&#xff1a; <div class"container"></div> <script src"https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>CSS: body{height: 1…