Codeforces Round 905 (Div. 3)ABCDEF

news2024/9/23 3:32:59

Codeforces Round 905 (Div. 3)

目录

  • A. Morning
    • 题意
    • 思路
    • 核心代码
  • B. Chemistry
    • 题意
    • 思路
    • 核心代码
  • C. Raspberries
    • 题意
    • 思路
    • 核心代码
  • D. In Love
    • 题意
    • 思路
    • 核心代码
  • E. Look Back
    • 题意
    • 思路
    • 核心代码

A. Morning

在这里插入图片描述

题意

从一开始,每一次操作可以选择当前的数字打印或者是移动到左右相邻的数字,具体排列看上图,给出一个标签四位数,求打印出来的操作次数

思路

求相邻两个数字之间的距离差累加

核心代码

void solve()
{
    string s;
    cin>>s;
    int ans=0;
    if(s[0]=='0')s[0]+=10;
    ans=abs(s[0]-'1');
    for(int i=1;i<4;++i)
    {
        if(s[i]=='0')s[i]+=10;
        ans+=abs(s[i]-s[i-1]);
    }
    ans+=4;
    cout<<ans<<endl;
}

B. Chemistry

在这里插入图片描述

题意

给你一个长度为n的字符串以及可以删除的字符个数k,询问删除之后重新排列能否构成回文字符串

思路

要想构成回文字符串所有的字母出现的次数都要是偶数,除了最中间的那一个字母可以是出现奇数次。然后是删除的k次,如果k大于原字符串中出现奇数次数的字母个数,那么后面多余的次数就可以去删除出现偶数次的字母,最后一定能够构成回文字符串,k不够大的话那就不能构成了

核心代码

void solve()
{
    int n,k;
    scanf("%d%d",&n,&k);
    string s;
    cin>>s;
    int len=s.size();
    int arr[26]{};
    for(int i=0;i<len;++i)
    {
        arr[s[i]-'a']++;
    }
    int geshu=0;
    int sum=0;
    for(int i=0;i<26;++i)
    {
        if(arr[i]&1)geshu++;
        sum+=arr[i];
    }
    if(geshu<=k+1)printf("YES\n");
    else printf("NO\n");
}

C. Raspberries

在这里插入图片描述

题意

给你一组长度为n的数组,以及一个整数k,每一次可以对数组里面的任意一个数字进行加一操作,问最少执行多少次可以使得这个数组里面所有的数字的乘积是k的倍数

思路

如果k是质数,那么我们只需要满足这个数组里面有一个数字是k的倍数就可以了,可以对每一个数字进行枚举找最小的那一个,但是如果是合数怎么操作呢,本题只有一个合数4,单独进行特判就可以了

核心代码

void solve()
{
    int n,k;
    scanf("%d%d",&n,&k);
    int minzhi=INT_MAX;
    int input;
    int oushu=0;
    int jishu=0;
    for(int i=0;i<n;++i)
    {
        scanf("%d",&input);
        if(input&1)jishu++;
        else oushu++;
        if(input%k==0)minzhi=0;
        else minzhi=min(minzhi,k-input%k);
    }
    if(k!=4)
    {
        printf("%d\n",minzhi);
        return ;
    }
    if(oushu>=2)printf("0\n");
    else if(oushu==1&&jishu>=1)printf("%d\n",min(minzhi,1));
    else if(oushu==1&&jishu==0)printf("%d\n",min(minzhi,2));
    else if(oushu==0&&jishu>=2)printf("%d\n",min(minzhi,2));
    return ;
}

D. In Love

在这里插入图片描述

题意

每一次增加一个边或者减少一个边,操作完之后询问是否存在一对不重合的边

思路

如果存在一对不重合的边,那么必然存在一条边的右端点小于一条边的左端点,我们只需要看最小的右端点是否小于最大的左端点即可

核心代码

void solve()
{
    int n;
    cin>>n;
    multiset<int>l,r;
    for(int i=0;i<n;++i)
    {
        char a;
        int x,y;
        cin>>a>>x>>y;
        if(a=='+')
        {
            l.insert(x);
            r.insert(y);
        }
        else
        {
            l.erase(l.find(x));
            r.erase(r.find(y));
        }
        if(l.size() > 1 && *r.begin() < *l.rbegin())printf("YES\n");
        else printf("NO\n");
    }
}

E. Look Back

在这里插入图片描述

题意

给你一组长度为n的数组,每一次可以选择一个数组乘以2,最少需要多少次可以使得这个数组变成一个非递减数组

思路

只需要从前往后进行贪心枚举就可以了,但是这个题目数据量有点大,不能直接存储每一个数字变化之后的数字,需要转化一下,比如我们可以通过前后两个数字的大小倍数关系来求

核心代码

void solve()
{
    int n;
    scanf("%d",&n);
    long long a=0,b;
    long long ans=0;
    long long num=0;
    long long bei=0;
    scanf("%lld",&a);
    for(int i=1;i<n;++i)
    {
        scanf("%lld",&b);
        if(b>a)
        {
            int a2=a;
            while(a2<=b&&a2!=0)
            {
                a2<<=1;
                num--;
            }
            num++;
            num=num>0?num:0;
            ans+=num;
            a=b;
            continue;
        }
        else if(a==b)
        {
            ans+=num;
            continue;
        }
        else
        {
            int b2=b;
            while(b2<a)
            {
                num++;
                b2<<=1;
            }
            ans+=num;
            a=b;
        }
    }
    printf("%lld\n",ans);
}

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

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

相关文章

【代码随想录】算法训练计划03

1、203. 移除链表元素 题目&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5] 思路&#xf…

【Unity实战】手戳一个自定义角色换装系统——2d3d通用

文章目录 每篇一句前言素材开始切换头型添加更改颜色随机控制头型和颜色新增眼睛同样的方法配置人物的其他部位设置相同颜色部位全部部位随机绘制UI并添加点击事件通过代码控制点击事件添加颜色修改的事件其他部位效果UI切换添加随机按钮保存角色变更数据跳转场景显示角色数据 …

Linux之J2EE的项目部署及发布

目录 前言 一、会议OA单体项目windows系统部署 1.检验工作 1. 检验jar项目包是否可以运行 2. 验证数据库脚本是否有误 3. 测试项目功能 2. 部署工作 2.1 传输文件 2.2 解压项目及将项目配置到服务器中 2.3 配置数据库 2.4 在服务器bin文件下点击startup.bat启动项目 …

Python----break关键字对while...else结构的影响

案例&#xff1a; 女朋友生气&#xff0c;要求道歉5遍&#xff1a;老婆大人&#xff0c;我错了。道歉到第三遍的时候&#xff0c;媳妇埋怨这一遍说的不真诚&#xff0c;是不是就是要退出循环了&#xff1f;这个退出有两种可能性&#xff1a; ① 更生气&#xff0c;不打算原谅…

最优秀的完整的数字音频工作站水果音乐FL Studio21.1.1.3750中文解锁版

FL Studio21.1.1.3750中文解锁版简称 FL 21&#xff0c;全称 Fruity Loops Studio 21&#xff0c;因此国人习惯叫它"水果"。目前最新版本是FL Studio21.1.1.3750中文解锁版版本&#xff0c;它让你的计算机就像是全功能的录音室&#xff0c;大混音盘&#xff0c;非常先…

连续离散混合系统控制与仿真

简单二阶系统 先研究最简单的二阶积分器串联型系统 x ˙ 1 x 2 x ˙ 2 u \begin{aligned} & \dot x_1 x_2 \\ & \dot x_2 u \\ \end{aligned} ​x˙1​x2​x˙2​u​ 使用零阶保持法离散化&#xff08;见附录&#xff09;&#xff0c; A [ 0 1 0 0 ] , B [ 0 …

Leetcode.1465 切割后面积最大的蛋糕

题目链接 Leetcode.1465 切割后面积最大的蛋糕 rating : 1445 题目描述 矩形蛋糕的高度为 h h h 且宽度为 w w w&#xff0c;给你两个整数数组 h o r i z o n t a l C u t s horizontalCuts horizontalCuts 和 v e r t i c a l C u t s verticalCuts verticalCuts&#xf…

Leetcode—66.加一【简单】

2023每日刷题&#xff08;十一&#xff09; Leetcode—66.加一 实现代码1 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* plusOne(int* digits, int digitsSize, int* returnSize){int num 0;int i 0;int arr[110] {0};// 进位标识…

Linux MMC子系统 - 2.eMMC 5.1总线协议浅析

By: Ailson Jack Date: 2023.10.27 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/161.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

Java提升技术,进阶为高级开发和架构师的路线

原文网址&#xff1a;Java提升技术&#xff0c;进阶为高级开发和架构师的路线-CSDN博客 简介 Java怎样提升技术&#xff1f;怎样进阶为高级开发和架构师&#xff1f;本文介绍靠谱的成长路线。 首先点明&#xff0c;只写业务代码是无法成长技术的。提升技术的两个方法是&…

“从部署到优化,打造高效会议管理系统“

目录 引言一、部署单机项目 - 会议OA1.1 硬件和软件环境准备1.2 检查项目1.3 系统部署1.后端部署 二、部署前后端分离项目 - SPA项目后端部署2.前端部署 总结 引言 在现代化办公环境中&#xff0c;会议是组织沟通、决策和合作的重要方式之一。为了提高会议的效率和质量&#x…

MySQL-DQL【数据查询语言】(图码结合)

目录 一.DQL的定义 二.DQL—语法 三.DQL—基础查询(SELECT.. FROM) &#x1f449;查询多个字段 &#x1f449;设置别名 &#x1f449;去除重复记录 准备工作(建表&#xff0c;添加数据&#xff09; &DQL----基本查询的案例 五.DQL—条件查询(WHERE) 5.1 语法: 5…

基于 C# 实现样式与数据分离的打印方案

对于八月份的印象&#xff0c;我发现大部分都留给了出差。而九月初出差回来&#xff0c;我便立马投入了新项目的研发工作。因此&#xff0c;无论是中秋节还是国庆节&#xff0c;在这一连串忙碌的日子里&#xff0c;无不充满着仓促的气息。王北洛说&#xff0c;“活着不就是仓促…

数字化转型系列主题:数据中台知识体系

当前&#xff0c;大部分企业不再建设从源数据采集到分析应用的烟囱式系统&#xff0c;更倾向于数据集中采集、存储&#xff0c;并应用分层建设。这种方式一方面有利于应用系统的快速部署&#xff0c;另一方面也保证了数据的集中管理与运营&#xff0c;体现数据的资产、资源属性…

主动调度是如何发生的

计算机主要处理计算、网络、存储三个方面。计算主要是 CPU 和内存的合作&#xff1b;网络和存储则多是和外部设备的合作&#xff1b;在操作外部设备的时候&#xff0c;往往需要让出 CPU&#xff0c;就像上面两段代码一样&#xff0c;选择调用 schedule() 函数。 上下文切换主要…

初识《时间复杂度和空间复杂度》

目录 前言&#xff1a; 关于数据结构与算法 1.什么是数据结构&#xff1f; 2.什么是算法&#xff1f; 3.数据结构和算法的重要性 算法效率是什么&#xff1f; 1.怎样衡量一个算法的好坏呢&#xff1f; 2.算法的复杂度是个什么&#xff1f; 时间复杂度 1.时间复杂度的概…

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.b…

RK3568-pcie接口

pcie接口与sata接口 pcie总线pcie总线pcie控制器sata控制器nvme设备sata设备nvme协议ahci协议m-key接口b-key接口RC模式和EP模式 RC和EP分别对应主模式和从模式,普通的PCI RC主模式可以用于连接PCI-E以太网芯片或PCI-E的硬盘等外设。 RC模式使用外设一般都有LINUX驱动程序,安…

LLM系列 | 22 : Code Llama实战(下篇):本地部署、量化及GPT-4对比

引言 模型简介 依赖安装 模型inference 代码补全 4-bit版模型 代码填充 指令编码 Code Llama vs ChatGPT vs GPT4 小结 引言 青山隐隐水迢迢&#xff0c;秋尽江南草未凋。 小伙伴们好&#xff0c;我是《小窗幽记机器学习》的小编&#xff1a;卖热干面的小女孩。紧接…

36基于matlab的对分解层数和惩罚因子进行优化

基于matlab的对分解层数和惩罚因子进行优化。蚁狮优化算法优化VMD,算术优化算法优化VMD&#xff0c;遗传优化算法优化VMD&#xff0c;灰狼优化算法优化VMD&#xff0c;海洋捕食者优化算法优化VMD&#xff0c;粒子群优化VMD&#xff0c;麻雀优化算法优化VMD&#xff0c;鲸鱼优化…