Educational Codeforces Round 153 (Rated for Div. 2)ABC

news2025/1/14 18:35:37

Educational Codeforces Round 153 (Rated for Div. 2)

目录

  • A. Not a Substring
    • 题目大意
    • 思路
    • 核心代码
  • B. Fancy Coins
    • 题目大意
    • 思想
    • 核心代码
  • C. Game on Permutation
    • 题目大意
    • 思想
    • 核心代码

A. Not a Substring

在这里插入图片描述

题目大意

给定一个只包含“(”和“)”这两个符号的字符串s,假设长度为n,返回一个不包含字符串s、长度为2n且满足运算规则的括号序列(意思就是“(”与“)”按顺序相对应)
翻译:

括号序列是由字符’(‘和/或’)'组成的字符串。常规括号序列是一种可以通过在序列的原始字符之间插入字符“1”和“+”来转换成正确算术表达式的括号序列。例如:

括号序列“()()”和“(())”是正则序列(它们可以分别转换为“(1)+(1)”和“(1+1)+1)”);括号序列“)(”、“(”和“)”不是正则序列。
给你一个括号序列s;我们定义它的长度为n。你的任务是找到一个长度为2n的正则括号序列t,使得s不作为连续子串出现在t中,或者报告不存在这样的序列。

输入 第一行包含一个整数t(1≤t≤1000)——测试用例的数量。

每个测试用例的唯一一行包含一个字符串s(2≤|s|≤50),由字符“(”和/或“)”组成。

输出
对于每个测试用例,打印它的答案。如果没有需要的常规括号序列,则在单独一行中打印no。否则,在第一行打印YES,在第二行打印所需的常规括号序列t。如果有多个答案-您可以打印其中的任何一个。

思路

简单构造一下两种情况:
第一种是类似于“()()()()”
第二种是类似于“(((())))”
稍微判断一下,一种不行就输出另外一种,还有一个特殊情况,当s为“()”时无解
特殊判断输出即可

核心代码

void solve()
{
    string s;
    cin>>s;
    int n;
    n=s.size();
    if(n==2&&s[0]=='('&&s[1]==')')
    {
        printf("NO\n");
        return ;
    }
    bool pd=1;
    int zhizhen=0;
    while(s[zhizhen]=='('&&zhizhen<n)
            zhizhen++;
    while(s[zhizhen]==')'&&zhizhen<n)
            zhizhen++;
    if(zhizhen==n)pd=1;
    else pd=0;
    if(pd)
    {
        cout<<"YES\n";
        for(int i=0;i<n;++i)
            cout<<"()";
        cout<<endl;
    }
    else
    {
        cout<<"YES\n";
        for(int i=0;i<n;++i)
            cout<<"(";
        for(int i=0;i<n;++i)
            cout<<")";
        cout<<endl;
    }
}

B. Fancy Coins

在这里插入图片描述

题目大意

一共有两种硬币,第一种硬币价值1,第二种硬币价值k,现在有第一种a1个,第二种ak个,现在想要凑出价值m,问最少需要额外购买硬币个数
翻译:

Monocarp将以m个burles的价格进行购买。

他有两种硬币,数量如下:

价值1个泡泡的硬币:a1枚普通硬币和无限多的花哨硬币;价值k个泡泡的硬币:ak枚普通硬币和无限多的花哨硬币。
Monocarp希望以一种没有变化的方式进行购买——提供的硬币总价值正好是m。他可以使用普通硬币和高级硬币。然而,他想要花费尽可能少的花哨硬币。

他可以用来购买物品的最小花式硬币总数是多少?

输入 第一行包含单个整数t(1≤t≤3⋅104)—测试用例的数量。

每个测试用例的唯一一行包含四个整数m、k、a1和ak(1≤m≤108;2
k≤≤108;0≤a1,ak≤108)-购买成本,第二种硬币的价值和两种硬币的普通硬币的数量。

输出 对于每个测试用例,打印一个整数—Monocarp可以用于购买的花哨硬币的最小总数。

思想

这道题也有O(1)的做法,但是当时懒得想了,直接二分答案,打表的过程中可以发现购买的硬币数量是先增加后减少的,可以利用相邻的两个值做差寻找最小值

核心代码

int check(int n)
{
    int zhi;
    zhi=max(n-b,0)+max((m-min(m/k,n)*k),a)-a;
    return zhi;
}
void solve()
{
 
    cin>>m>>k>>a>>b;
    if(a>m||a==m)
    {
        cout<<"0\n";
        return;
    }
    int left=0,right=1e8+10;
    while(left<right)
    {
        int mid=(left+right)>>1;
        if(check(mid)<check(mid+1))right=mid;
        else left=mid+1;
    }
    cout<<check(left)<<endl;
    return;
}

C. Game on Permutation

在这里插入图片描述

题目大意

两个人 Alice 和 Bob 一起玩游戏,有一个长度为n的1~n的序列,任选一个开始的点,每一次只能选择左边一个比自己小的数字进行移动,两人轮流移动,谁先无法移动或者是移动到最左边的点为输
翻译:

爱丽丝和鲍勃在玩游戏。它们有一个大小为n的排列p(大小为n的排列是一个大小为n的数组其中每个元素从1到n
只发生一次)。它们还有一个芯片,可以放在排列中的任何元素上。

爱丽丝和鲍勃轮流走:爱丽丝走第一步,然后鲍勃走第二步,然后爱丽丝走第三步,以此类推。在第一步中,爱丽丝选择排列中的任何元素并将筹码放在该元素上。在接下来的每一次移动中,当前玩家必须将筹码移动到任何同时在左侧且严格小于当前元素的元素(即。如果芯片位于第i个元素上,则如果j<i且pj<pi),则芯片可以移动到第j个元素上。如果一个玩家不能移动(根据游戏规则,移动筹码是不可能的),那么这个玩家就赢了游戏。

假设如果满足以下条件,排列中的第i个元素是幸运的:

如果Alice在第一步时把筹码放在第i个元素上,那么不管Bob怎么走,她都能赢。她有一个制胜策略)。 你必须计算这个排列中幸运元素的个数。

输入 第一行包含一个整数t(1≤t≤104)——测试用例的数量。

每个测试用例的第一行包含单个整数n(1≤n≤3⋅105),即排列中的元素个数。

第二行包含n个整数p1,p2,…,pn(1≤pi≤n)。所有的都是不同的。

n除以所有测试用例的和不超过3·105。

输出 对于每个测试用例,打印一个整数——排列中幸运元素的数量。

思想

从左边往右边进行遍历,如果当前的值是目前最小的,那么则个点肯定是不能是幸运点,如果比上一个幸运点的值要小,那么此时这个点就是幸运点。

核心代码

void solve()
{
    int n,a;
    scanf("%d",&n);
    int minzhi=INT_MAX;
    bool win=0;
    int ans=0,winlose=n;
    for(int i=0;i<n;++i)
    {
        int shuru;
        scanf("%d",&shuru);
        if(minzhi>shuru)
        {
            minzhi=shuru;
            win=1;
        }
        else
        {
            win=(winlose<shuru);
        }
        if(!win)
        {
            ans++;
            winlose=min(winlose,shuru);
        }
    }
    cout<<ans<<endl;
}

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

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

相关文章

EV PV AC SPI CPI TCPI

SPI EV / PV CPI EV / ACCPI 1.25 SPI 0.8 PV 10 000 BAC 100 000EV PV * SPI 10 000 * 0.8 8000 AC EV / CPI 8000 / 1.25 6400TCPI (BAC - EV) / (BAC -AC) (100 000 - 8 000) / (100 000 - 6 400) 92 000 / 93 600 0.98290598

Python土力学与基础工程计算.PDF-钻探泥浆制备

Python 求解代码如下&#xff1a; 1. rho1 2.5 # 黏土密度&#xff0c;单位&#xff1a;t/m 2. rho2 1.0 # 泥浆密度&#xff0c;单位&#xff1a;t/m 3. rho3 1.0 # 水的密度&#xff0c;单位&#xff1a;t/m 4. V 1.0 # 泥浆容积&#xff0c;单位&#xff1a;…

画质提升+带宽优化,小红书音视频团队端云结合超分落地实践

随着视频业务和短视频播放规模不断增长&#xff0c;小红书一直致力于研究&#xff1a;如何在保证提升用户体验质量的同时降低视频带宽成本&#xff1f; 在近日结束的音视频技术大会「LiveVideoStackCon 2023」上海站中&#xff0c;小红书音视频架构视频图像处理算法负责人剑寒向…

OpenAI 选择这家成立2年的8人团队做什么?

当地时间 8 月 16 日&#xff0c;OpenAI 发布公告称收购了 Global Illumination 的团队&#xff0c;此笔交易更成为 OpenAI 自 2015 年成立以来首次对外收购&#xff0c;但并未公开交易涉及金额。据悉&#xff0c;该团队将参与 OpenAI 核心产品产品的研发&#xff0c;包括 Chat…

第八章:联邦学习在金融保险领域的应用案例

8.1 概述 联邦学习作为一种保障数据安全的建模方法&#xff0c;在保险、金融等行业中的应用前景十分广泛&#xff0c;因为这类行业昔谝受到更为严格的监管和隐私保护法律法规的约束&#xff0c;跨部门或者跨枧构之间的数据&#xff0c;无法被直接共卓进行机器学习模型训练。因…

Go download

https://go.dev/dl/https://golang.google.cn/dl/

贝锐蒲公英助力电子公交站牌联网远程运维,打造智慧出行新趋势

在现代城市公共交通系统中&#xff0c;我们随处可见电子公交站牌的身影。作为公共交通服务的核心之一&#xff0c;电子公交站牌的稳定运行至关重要&#xff0c;公交站台的实时公交状况、公共广告信息&#xff0c;是市民候车时关注的焦点。 某交通科技公司在承接某市智能电子站牌…

Fluent-MyBatis

Fluent-MyBatis Fluent-MyBatis 简介 何为 Fluent Mybatis&#xff1f; Fluent Mybatis, 是一款 Mybatis 语法增强框架, 综合了 Mybatis Plus, Dynamic SQL, JPA 等框架特性和优点 Fluent-MyBatis 开源地址 Fluent-MyBatis 原理 Fluent-MyBatis 原理是利用 annotation pro…

商城-学习整理-高级-商城业务-商品上架es(十)

目录 一、商品上架1、sku在ES中存储模型分析2、nested数据类型场景3、构造基本数据&#xff08;商品上架&#xff09; 二、首页1、项目介绍2、整合thymeleaf&#xff08;spring-boot下模板引擎&#xff09;渲染页面3、页面修改不重启服务器实时更新4、渲染二级三级数据 三、搭建…

HCIP---路由策略

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 前文我们初步了解了重发布技术的技术的工作流程及配置方法&#xff0c;在解决路由回馈问题的同时&#xff0c;路由回馈&#xff0c;选路不佳问题仍然没有得到有效解决&#xff0c;接下来通…

HCIA---ARP协议

文章目录 目录 前言 一.ARP协议简介 二.ARP协议工作原理 交换机转发原理&#xff1a; 泛洪&#xff1a; 总结 前言 我们知道在OSI七层参考模型中&#xff0c;TCP/UDP协议作用于传输层可以用来在设备之间建立连接&#xff0c;而在连接建立的过程中&#xff0c;设备之间是如何…

基于CNN卷积神经网络的口罩检测识别系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................ % 循环处理每张输入图像 for…

【实现Element表单区间输入框】

思路&#xff1a;两个输入框组合而成的&#xff0c;绑定的是数组的第一项和第二项、搭配自定义正则从而实现的区间输入框 效果 核心代码 页面部分传递给组件的数据上部分核心之外还需给组件一个默认值dataform: {interval: [],}, interval数组的第一项绑定的第一个区间&#…

selenium中处理验证码问题

验证码 基本作用&#xff1a;可以实现当前访问页面的数据安全性、还可以减少用户的并发数&#xff1b; 类型&#xff1a;1、纯数字、纯字母&#xff1b;2、汉字组合&#xff1b;3、数学运算题&#xff1b;4、滑动&#xff1b;5、图片&#xff08;选不同的、选相同、成语顺序&…

SpringBoot + Vue 前后端分离项目 微人事(九)

职位管理后端接口设计 在controller包里面新建system包&#xff0c;再在system包里面新建basic包&#xff0c;再在basic包里面创建PositionController类&#xff0c;在定义PositionController类的接口的时候&#xff0c;一定要与数据库的menu中的url地址到一致&#xff0c;不然…

剑指 Offer 40. 最小的k个数(C+实现)

剑指 Offer 40. 最小的k个数https://leetcode.cn/problems/zui-xiao-de-kge-shu-lcof/ 法1&#xff1a;二叉堆 通过最小堆&#xff0c;直接筛选出最小的k个数 vector<int> getLeastNumbers(vector<int>& arr, int k) {priority_queue<int, vector<int>…

深信服 SG上网优化管理系统 catjs.php 任意文件读取漏洞[2023-HW]

深信服 SG上网优化管理系统 catjs.php 任意文件读取漏洞 一、漏洞描述二、漏洞影响三、网络测绘四、漏洞复现小龙POC检测: 五、 修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间…

中间件的介绍

1.1 什么是中间件 中间件是介于应用系统和系统软件之间的一类软件&#xff0c;他使用系统软件所提供的基础服务&#xff0c;衔接网络上应用系统的各个部分或不同的应用&#xff0c;能够达到资源共享、功能共享的目的。 例如MySQL就可以看作是具备中间件特性的一种技术&#x…

LLaMA模型泄露 Meta成最大受益者

一份被意外泄露的谷歌内部文件&#xff0c;将Meta的LLaMA大模型“非故意开源”事件再次推到大众面前。“泄密文件”的作者据悉是谷歌内部的一位研究员&#xff0c;他大胆指出&#xff0c;开源力量正在填平OpenAI与谷歌等大模型巨头们数年来筑起的护城河&#xff0c;而最大的受益…

CG MAGIC分享为什么使用3d Max渲染,呈现白蒙蒙的?

使用3d Max渲染&#xff0c;有小伙伴反映&#xff0c;为什么渲染过程中&#xff0c;max渲染&#xff0c;总是出现白蒙蒙的的效果呢&#xff1f; 渲染出这白白一片是什么原因导致的呢&#xff1f; 想要解决的朋友&#xff0c;点进来&#xff0c;看看CG MAGIC小编整理的解决方法…