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

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.mzph.cn/news/43153.shtml

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

相关文章

react-native-webview RN和html双向通信

rn登录后得到的token需要传递给网页&#xff0c;js获取到的浏览器信息需要传递给rn RN Index.js: import React from react import { WebView } from react-native-webview import useList from ./useListexport default function Index(props) {const { uri, jsCode, webVie…

iPhone删除的照片能恢复吗?不小心误删了照片怎么找回?

iPhone最近删除清空了照片还能恢复吗&#xff1f;大家都知道&#xff0c;照片对于我们来说是承载着美好回忆的一种形式。它记录着我们的平淡生活&#xff0c;也留住了我们的美好瞬间&#xff0c;具有极其重要的纪念价值。 照片不小心误删是一件非常难受的事&#xff0c;那么iP…

Centos7 配置Docker镜像加速器

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…

CentOS系统环境搭建(五)——Centos7安装maven

centos系统环境搭建专栏&#x1f517;点击跳转 Centos7安装maven 下载压缩包 maven下载官网 解压 压缩包放置到/usr/local tar -xvf apache-maven-3.9.2-bin.tar.gz配置环境变量 vim /etc/profile在最下面追加 MAVEN_HOME/usr/local/apache-maven-3.9.2 export PATH${MAV…

Jenkins 监控dist.zip文件内容发生变化 触发自动部署

为Jenkins添加plugin http://xx:xx/manage 创建一个任务 构建触发器 每3分钟扫描一次&#xff0c;发现指定文件build.zip文件的MD5发生变化后 触发任务

【C++学习手札】一文带你认识C++虚继承​​

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f340;本文前置知识&#xff1a;C虚函数&#xff08;很重要&#xff0c;内部剖析&#xff09; ♈️今日夜电波&#xff1a;僕らのつづき—柊優花 1:06 ━━━━━━️&#x1f49f;──────── 3:51 …

创建密码库/创建用户帐户/更新 Ansible 库的密钥/ 配置cron作业

目录 创建密码库 创建用户帐户 更新 Ansible 库的密钥 配置cron作业 创建密码库 按照下方所述&#xff0c;创建一个 Ansible 库来存储用户密码&#xff1a; 库名称为 /home/curtis/ansible/locker.yml 库中含有两个变量&#xff0c;名称如下&#xff1a; pw_developer&#…

File inclusion

文章目录 File inclusion(local)File inclusion(remote) File inclusion(local) 随便选择一个点击提交&#xff0c;提交后观察 url ?filename 我们可以使用相对路径../../../../../访问我们想要看到的文件内容 查看windows系统的主机映射文件../../../../Windows/System32/…

ShardingSphere 可观测 SQL 指标监控

ShardingSphere并不负责如何采集、存储以及展示应用性能监控的相关数据&#xff0c;而是将SQL解析与SQL执行这两块数据分片的最核心的相关信息发送至应用性能监控系统&#xff0c;并交由其处理。 换句话说&#xff0c;ShardingSphere仅负责产生具有价值的数据&#xff0c;并通过…

【C++】AVL树(平衡二叉树)

目录 一、AVL树的定义二、AVL树的作用三、AVL树的插入操作插入——平衡因子的更新插入——左单旋插入——右单旋插入——左右双旋插入——右左双旋 四、ALVL树的验证五、AVL树的性能 一、AVL树的定义 AVL树&#xff0c;全称 平衡二叉搜索&#xff08;排序&#xff09;树。 二…

HCIP的交换机实验

题目 拓扑图 PC1/3接口用access 创建WLAN LSW1 创建WLAN [lsw1]vlan batch 2 to 6[lsw1-Ethernet0/0/1]p [lsw1-Ethernet0/0/1]port l [lsw1-Ethernet0/0/1]port link- [lsw1-Ethernet0/0/1]port link-flap [lsw1-Ethernet0/0/1]port link-type acc [lsw1-Ethernet0/0…

Bigemap Pro国产基础软件介绍——一款多源数据处理软件

一、软件简介 Bigemap Pro是由成都比格图数据处理有限公司(下称”BIGEMAP”)开发和发行的国产大数据处理基础软件。Bigemap Pro是在BIGEMAP GIS Office基础上&#xff0c;经过十年的用户积累与反馈和技术更新迭代出的新一代基础软件产品。Bigemap Pro国产基础软件集成了数据采…

【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录 1 想法概述2 实际过程阶段1 Add Noise阶段2 Denoise 3 数学原理4 为什么推理时要额外加入noise5 一些不知道对不对的Summary 1 想法概述 从一张充满噪声的图中不断denoise&#xff0c;最终得到一张clear的图片。为了确定当前图片中噪声占比的大小&#xff0c;同时输入…

LVS负载均衡之--Keepalived模式(超详细)

一.Keepalived概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具&#xff0c;主要用来提供故障切换和健康检查功能-----判断LVS负载调度器&#xff0c;节点服务器的可用性&#xff0c;及时隔离并替换为新的服务器&#xff0c;当故障主机恢复后将其重新加入群集中Keep…

【数据结构】二叉树

&#x1f407; &#x1f525;博客主页&#xff1a; 云曦 &#x1f4cb;系列专栏&#xff1a;数据结构 &#x1f4a8;吾生也有涯&#xff0c;而知也无涯 &#x1f49b; 感谢大家&#x1f44d;点赞 &#x1f60b;关注&#x1f4dd;评论 文章目录 前言一、树的概念及结构&#x…

【5G 核心网】5G 多PDU会话锚点技术介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframewo…

网络通信原理传输层TCP三次建立连接(第四十八课)

ACK :确认号 。 是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。确认号X+1SEQ:序号字段。 TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的…

「UG/NX」Block UI 面收集器FaceCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

LangChain手记 Question Answer 问答系统

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Question Answer&#xff08;源代码可见&#xff09; 本节介绍使用LangChian构建文档上的问答系统&#xff0c;可以实现给定一个PDF文档&#xff0c;询问关于文档上出现过的某个信息点&#xff0c;LLM可以给出关于该…