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…

android TextView 超出长度使用省略号

在Android中最常见的需求&#xff0c;就是在在外部展示信息时&#xff0c;需要简要展示内容。TextView仅需在静态布局文件中设置以下几个属性&#xff1a; android:maxWidth“100dp” // 宽度是多少才算超出 android:maxLines"2" // 高度多少才算超出 android:elli…

React下载文件的两种方式

React下载文件的两种方式 - 代码先锋网 不知道有用没用看着挺整齐 没试过 1、GET类型下载 download url > {const eleLink document.createElement(a);eleLink.style.display none;// eleLink.target "_blank"eleLink.href url;// eleLink.href record;d…

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&#…

神经网络基础-神经网络补充概念-39-梯度消失与梯度爆炸

简介 梯度消失和梯度爆炸是在深度神经网络中训练过程中可能出现的问题&#xff0c;导致模型难以训练或无法收敛。这些问题与反向传播算法中的梯度计算有关。 概念 梯度消失&#xff08;Gradient Vanishing&#xff09;&#xff1a;在深层神经网络中&#xff0c;特别是具有很…

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;并通过…

Go 语言中排序的 3 种方法

原文链接&#xff1a; Go 语言中排序的 3 种方法 在写代码过程中&#xff0c;排序是经常会遇到的需求&#xff0c;本文会介绍三种常用的方法。 废话不多说&#xff0c;下面正文开始。 使用标准库 根据场景直接使用标准库中的方法&#xff0c;比如&#xff1a; sort.Intsso…

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

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

一次Linux图形化界面恢复

一次Linux 图形化界面恢复 一次Linux 图形化界面恢复出现问题场景问题排查 一次Linux 图形化界面恢复 出现问题场景 使用xmanager远程连接虚机的CentOS7系统图形界面出现已拒绝x11转移申请问题&#xff0c;在折腾X11过程中&#xff0c;安装与卸载的过程中不小心把xorg-x11-xa…

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…

kubeasz在线安装K8S集群单master集群(kubeasz安装之二)

一、介绍 Kubeasz 是一个基于 Ansible 自动化工具&#xff0c;用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群&#xff0c;支持容器化部署&#xff0c;可以方便地扩展集群规模&#xff0c;支持多租户&#xff0c;提供了强大的监控和日志分…

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;同时输入…

rust踩雷笔记(1)——切片传参和解引用赋值

最近学习rust&#xff0c;网上资料还是很有限&#xff0c;做题遇到的问题&#xff0c;有时需要自己试验。把自己做题过程遇到的问题&#xff0c;和试验的结论&#xff0c;做一些简单记录。 阅读下列文字和代码 用切片&#xff08;的引用&#xff09;做参数要非常小心&#xff…