Codeforces Round 917 (Div. 2)

在这里插入图片描述

Codeforces Round 917 (Div. 2)

Codeforces Round 917 (Div. 2)

A. Least Product

题意:

给出整数数组a,现在可以执行任意次数以下操作:任意选择数组a的一个元素 a i a_i ai,若 a i a_i ai>0可以任意替换为[0, a i a_i ai]的一个数,若 a i a_i ai<0则可以任意替换为[ a i a_i ai,0]的一个数。

最小化a数组中所有元素的乘积需要的最小操作次数。

思路:

  • 若存在 a i a_i ai=0,则任何操作都无意义,乘积总为0,操作数为0;
  • 若负数的个数为奇数,则最终乘积为负,操作无法扩大元素绝对值,所以此时操作也无意义,操作数为0;
  • 其他情况最佳操作为选择任意一个数变成0即可,操作数为1。

AC code:

void solve(){int cnt = 0;cin >> n;for(int i = 0; i < n; i ++){int u; cin >> u;if(u < 0) cnt ++;if(u == 0) cnt = -INF;}if(cnt < 0 || cnt % 2){cout << 0 << endl;return;}cout << 1 << endl;cout << "1 0" << endl;
}

B. Erase First or Second Letter

题意:

给出长度为n的字符串,每次操作可以选择删除当前字符串的第一个字符或第二个字符,求对初始字符串进行任意次数/顺序的操作后,可以生成的非空字符串的数量。

思路:

删除操作只能删除第一或第二个字符,那么可以保留当前字符为前缀一直走到最后,每次需要统计第一次出现的字符来增加遍历到新字符时的新的字符串的数量,第一和第二字符不可能同时保留,保留的过程可以通过不断删除第二字符来保留第一字符,然后再从初始字符串中删除当前第一字符,再重复保留第二字符。

AC code:

void solve(){map<char, int> mp;cin >> n >> s;int cnt = 0, ans = 0;for(int i = 0; i < n; i ++){if(!mp[s[i]]){mp[s[i]] ++;cnt ++;}ans += cnt;}cout << ans << endl;
}

C. Watering an Array

题意:

对长度为n的整数数组a进行d次操作,每次可以选择以下两个操作之一:

  • 对数组a的每个前 b i b_i bi个元素+1
  • 统计 a j a_j aj=j的数量c,然后就将c加到分数中,然后将序列全部归0,注意初始分数为0

d可能非常大,所以d多个b序列数组的连接, b = [ v 1 , v 2 , … , v k , v 1 , v 2 , … , v k , … ] b = [v_1, v_2, \ldots, v_k, v_1, v_2, \ldots, v_k, \ldots] b=[v1,v2,,vk,v1,v2,,vk,]

思路:

首先,第一种操作是对序列前缀进行递增操作,无法递减,无法精准操作到某一元素,一旦有过一次第二种操作,整个序列会归零,那么再进行第一次操作对分数的贡献最多为1;

所以要最大化第一次使用第二种操作得到的分数,那么剩下的操作次数/2向下取整即为剩余操作所能获得的分数;

因为每次都必须选择一个操作进行,一旦选择了第二种操作,那么之后的操作次数的分数可以直接得到,我们从前往后进行操作,记录每次得到的分数,取最大值即可。

AC code:

void solve(){cin >> n >> k >> d;for(int i = 1; i <= n; i ++) cin >> a[i];for(int i = 1; i <= k; i ++) cin >> b[i];int cnt = 0, ans = 0;for(int i = 1; i <= min(2*n, d); i ++){cnt = 0;for(int j = 1; j <= n; j ++){if(a[j] == j) cnt ++;}ans = max(ans, cnt + (d - i) / 2) ;int now = i % k + (i % k == 0) * k;for(int j = 1; j <= b[now]; j ++)a[j] ++;}cout << ans << endl;
}

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

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

相关文章

U盘加密软件哪个好用(三款优秀的U盘加密软件推荐)

随着移动存储设备的普及&#xff0c;U盘已成为我们工作和生活中不可或缺的存储工具。然而&#xff0c;U盘丢失或被盗的风险也随之增加&#xff0c;如何保护U盘中的敏感数据成为了重要的问题。 此时&#xff0c;U盘加密软件成为了解决这一问题的有效手段。 那么&#xff0c;哪个…

nosql--RedisTemplate定制化

nosql--RedisTemplate定制化 1、序列化2、如果使用redis中保存数据会使用默认的序列化机制&#xff0c;导致redis中保存的对象不可视2.1将所有的对象以JSON的形式保存2.2配置reids自定义配置2.3转化成功2.4配置文件代码 3redis客户端 1、序列化 stringRedisTemplate RedisTemp…

Linux操作系统——进程(三) 进程优先级

进程优先级 首先呢&#xff0c;我们知道一个进程呢&#xff08;或者也可以叫做一个任务&#xff09;&#xff0c;它呢有时候要在CPU的运行队列中排队&#xff0c;要么有时候阻塞的时候呢又要在设备的等待队列中排队&#xff0c;其实我们排队的本质就是&#xff1a;确认优先级。…

用水用电用燃气PSD大屏文件,电力行业可视化大数据(供水供电可视化管理后台资料)

通过对水、电、燃气等能源的使用情况进行统计和分析&#xff0c;可以有效地预测能源需求&#xff0c;为企业的能源管理提供决策依据。现分享大屏燃气大数据可视化平台、电力行业可视化大数据展示平台、大工商业用气快速报告、供水供电可视化管理后台等大屏模版的Photoshop源文件…

[Linux] Mysql数据库中的用户管理与授权

一、登录用户的管理 1.1 查看用户密码的信息 用户信息存放在 mysql 数据库下的 user 表&#xff08;MySQL 服务下存在一个系统自带的 mysql 数据库&#xff09;。 use mysql ; show tables; desc user; 查看密码信息的命令&#xff1a; 能看到密码信息&#xff1a;是经过加…

数据库管理-第127期 LSM Tree(202301225)

数据库管理-第127期 LSM Tree&#xff08;202301225&#xff09; 说起分布式数据库&#xff0c;绕不开的一个话题就是LSM Tree&#xff0c;全称为log-structured merge-tree&#xff0c;回到吕海波老师授权过的那句话“没搞过Oracle的&#xff0c;但又是数据库圈里的人&#x…

matlab设置colorbar标题的两种方式

%% 第一种 figure; A rand(3,4,3); A1 A(:,:,1); A2 A(:,:,2); A3 A(:,:,3); contourf(A1,A2,A3,30); colormap(jet);colorbar; my_handlecolorbar; my_handle.Label.String depth/km; my_handle.Label.FontSize 15;%% 第二种 figure; A rand(3,4,3); A1 A(:,:,1); A2 …

隔壁小孩馋哭了都要问我要的MySQL数据库攻略

1 Mysql数据库 1.1 数据库概念 数据 描述事物的符号记录 包括数字、文字、图形、图像声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起 用来存储具体数据 数据库 标的合集&#xff0c;是存储数据的仓库 以定的组织方式存储打的相互有…

等级保护安全的管理机构与管理制度

目录 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定和发布 评审和修订 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定…

云卷云舒:算力网络+云原生(中):探索构建算力网络数据库

一、导言 1、基础要求&#xff1a;算力网络时代&#xff0c;数据类型、范围充分延展和爆发&#xff0c;数据库也要适应起来&#xff0c;分布式数据库是起步要求&#xff1b; 2、近期需求&#xff1a;通过云服务的方式提供算网时代&#xff0c;尤其是智能大模型所需要的向量数…

042、文本与语言模型

之——nlp基础 目录 之——nlp基础 杂谈 正文 1.文本预处理 2.语言模型 3.语言模型实现 杂谈 在语言模型中&#xff0c;需要对文本进行预处理&#xff0c;进行数字化的一系列操作&#xff0c;而后才能进行网络的拟合。 以前的相关&#xff1a;词性判断 正文 1.文本预处…

简易的555函数信号发生器电路图

函数信号发生器是一种信号发生装置&#xff0c;能产生某些特定的周期性时间函数波形&#xff08;正弦波、方波、三角波、锯齿波和脉冲波等&#xff09;信号&#xff0c;频率范围可从几个微赫到几十兆赫。除供通信、仪表和自动控制系统测试用外&#xff0c;还广泛用于其他非电测…

基于深度学习的安全帽检测识别系统(含UI界面、yolov5、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov5 yolov5主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM、CA等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主…

Wireshark网络工具来了

Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包&#xff0c;并尝试显示包的尽可能详细的情况。 Wireshark是一个免费开源软件&#xff0c;不需要付费&#xff0c;免费使用&#xff0c;可以直接登陆到Wireshark的官网下载安装。 在windows环境中&#x…

FPFA.一种二倍频电路代码描述以及测量详情

一、前言 1、因为需要倍频电路所以找了个二倍频的电路&#xff0c;通过fpga实际测量发现经过倍频后的电路峰值降低。不过这个也正常&#xff0c;因为该电路只要过触发点就会开始发生波形变化&#xff0c;而电路的触发值不是峰值。​​​​​​​ 2、继续对电路做倍频后信号做二…

嵌入式开发常见的3个C语言技巧

​1.操作寄存器 在嵌入式开发中&#xff0c;常常要操作寄存器&#xff0c;对寄存器进行写入&#xff0c;读出等等操作。每个寄存器都有自己固有的地址&#xff0c;通过C语言访问这些地址就变得尤为重要。 #define GSTATUS1 (*(volatile unsigned int *)0x560000B0)在这里…

国外加固Appdome环境检测与绕过

文章目录 前言第一部分&#xff1a;定位检测逻辑的通用思路1. 通过linux“一切皆文件”思路定位2. 分析现有检测软件猜测可能检测点3. 通过正向开发思路定位4. 通过activity及弹窗定位 第二部分&#xff1a;检测结果展示整体流程1. Jni反射调用doDispath完成广播发送2. NativeB…

第11章 GUI Page439 步骤十二 为图元编号 支持直线

运行效果&#xff1a; 关键代码&#xff1a; 为IItem类新增三个函数&#xff0c;两个纯虚 为直线类&#xff0c;新增一个_index成员&#xff0c;并实现GetIndex和SetIndex两个函数 窗口类新增一个 _item_id成员&#xff0c;并初始化 在将图元压入队列之前&#xff0c;设置图元…

多继承与多重继承

多继承与多重继承 实验介绍 多继承与多重继承虽然只相差一个字,但是却是两个不同的概念。实验首先是要区分多继承与多重继承,其次是要学习多继承与多重继承的使用方式。 知识点 多继承与多重继承概念继承构造函数多继承与多重继承概念 多继承与多重继承可以从字面上理解。…

【强化学习】PPO:近端策略优化算法

近端策略优化算法 《Proximal Policy Optimization Algorithms》 论文地址&#xff1a;https://arxiv.org/pdf/1707.06347.pdf 一、 置信域方法(Trust Region Methods) ​ 设 π θ o l d \pi_{\theta_{old}} πθold​​是先前参数为 θ o l d \theta_{old} θold​的策略网…