VP Codeforces Round 990 (Div. 2)

news/2025/1/10 15:50:09/文章来源:https://www.cnblogs.com/maburb/p/18664112

A. Alyona and a Square Jigsaw Puzzle

题意:一个人搭一个矩阵,一圈圈的围,每天放\(a_i\)个方块,当某天正好搭出来一个矩阵他就开心。问有多少天是开心的。

发现每搭一圈,矩阵长度加2,不同边长矩阵需要的方块也可以算出来,按题意模拟就行。

点击查看代码
void solve() {int n;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}int tot = 1, len = 1;int ans = 0, sum = 0;for (int i = 0; i < n; ++ i) {sum += a[i];while (tot + len * 4 - 4 < sum) {tot += len * 4 - 4;len = len + 2;}if (tot + len * 4 - 4 == sum) {++ ans;}}std::cout << ans << "\n";
}

B. Replace Character

给你一个字符串,你必须进行一次操作把一个字符串里的字符变成字符串里的另一个字符,最后让全排列中不同的字符串最少。

我们应该让最多的字符尽可能多,因为每个相同的字符换位置还是相同的字符串。考虑应该把哪个字符换成最多的这个字符,我们应该换出现次数最少的那个(猜的)。

点击查看代码
void solve() {int n;std::string s;std::cin >> n >> s;std::vector<int> cnt(26);for (auto & c : s) {++ cnt[c - 'a'];}int pmin = s[0] - 'a', pmax = s[0] - 'a';for (auto & c : s) {if (cnt[c - 'a'] > cnt[pmax]) {pmax = c - 'a';}if (cnt[c - 'a'] < cnt[pmin]) {pmin = c - 'a';}}if (pmin == pmax) {if (cnt[pmax] != n) {for (auto & c : s) {if (c - 'a' != pmax) {c = 'a' + pmax;break;}}}} else {for (auto & c : s) {if (c - 'a' == pmin) {c = 'a' + pmax;break;}}}std::cout << s << "\n";
}

C. Swap Columns and Find a Path

题意:一个2*n的矩阵,你可以随意更改列的位置,只能向下或者向右,求从(1, 1)到(2, n)的最长路。

根据题意我们发现,我们有一个转折点,也就是向下的那一步,这一步前面都是走上面,后面都是走下面,但向下的这一列上下都走了。

于是我们枚举向下的这一列,其他列就取上下最大值就行。因为其他一列上下要走且只能走一个。

点击查看代码
void solve() {int n;std::cin >> n;using PII = std::pair<i64, i64>;std::vector<PII> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i].first;}for (int i = 0; i < n; ++ i) {std::cin >> a[i].second;}i64 ans = -1e18;for (int i = 0; i < n; ++ i) {i64 sum = 0;for (int j = 0; j < n; ++ j) {if (j == i) {continue;}sum += std::max(a[j].first, a[j].second);}ans = std::max(ans, sum + a[i].first + a[i].second);}std::cout << ans << "\n";
}

D. Move Back at a Cost

这题做我一个小时,最后发现这么简单,唐完了。

题意:给你一个数组,你可以操作任意次,每次把一个数加一后放到最后面,要让这个数组字典序最小。

开始模拟一下发现,应该每次把最小值的前面的非最小值都拿到后面去,wa2后发现后面一些值也要动,但还是wa2,然后发现自己首先不能保证复杂度正确,代码也不好写。
最后十分钟发现每个数最多加一次,因为如果这个数后面有比他小的,他就一定要放后面,那么我们把所有要放后面的排个序就行了。除此之外,还有可能前面的比它小的数会放到后面,那么这个数也要放到后面。循环两次找要加1的数就行。

点击查看代码
void solve() {int n;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}std::vector<int> st(n);int min = 1e9;for (int i = n - 1; i >= 0; -- i) {if (a[i] > min) {st[i] = 1;}min = std::min(min, a[i]);}min = 1e9;for (int i = 0; i < n; ++ i) {if (a[i] > min + 1) {st[i] = 1;}if (st[i]) {min = std::min(min, a[i]);}}for (int i = 0; i < n; ++ i) {a[i] += st[i];}std::sort(a.begin(), a.end());for (int i = 0; i < n; ++ i) {std::cout << a[i] << " \n"[i == n - 1];}
}

E. Adventurers

待补

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

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

相关文章

异地多活架构进阶:如何解决写后立即读场景问题?【转】

在《醍醐灌顶!异地多活架构设计看这篇就够了》一文中,基于容灾需要,讨论了数据写入的架构模型。数据读取方面,重点在于解决读取请求的负载分担、路由选择的问题,对于容灾架构的选择影响不大。不过,其中的“写后立即读”场景,是个一致性范畴的问题,即写入的数据和写入后…

JAVA之面向对象

1、设计对象并使用类和对象 类(设计图):是对象共同特征的描述; 对象:是真实存在的具体实例; 在java中,必须先设计类,才能获得对象。 如何得到类的对象:类名 对象名 = new 类名(); 如何使用对象: 访问属性:对象名.成员变量 访问行为:对象名.方法…

免费手动打Windows Server补丁

免费手动打Windows Server 2008 R2补丁https://catalog.update.microsoft.com/search.aspx?q=kb4474419然后到windows上双击运行即可本文来自博客园,作者:六月OvO,转载请注明原文链接:https://www.cnblogs.com/chenlifan/p/18664077

pwn1_sctf_2016 1

打开ida反汇编看一下,是c++,无所谓,复制问一下ai先让我们输入s的数据,读取长度限制在32字节。然后replace函数会将s里面的 I 替换成 you 。最后输出s。 分析一下,s距离ebp为0x3C(60字节),且我们最多只能输入32字节的,但经过replace函数,一个字节的‘I’会被替换成三个…

UDS-ECU程序刷写

UDS(unified diagnostic services)统一诊断服务主要是针对汽车上对ECU进行诊断服务规范,下图是UDS在OSI分层中的具体规范,基于UDS的刷写应用逻辑体现在应用层的ISO14229规范。一、功能介绍 UDS(unified diagnostic services)统一诊断服务主要是针对汽车上对ECU进行诊断服…

主体分割技术,提升图像信息提取能力

在智能设备普及和AI技术进步的推动下,用户对线上互动的质量、个性化以及沉浸式体验的追求日益增强。例如,对于热衷于图片编辑或视频制作的用户来说,他们需要一种快速而简便的方法来将特定主体从背景中分离出来。 HarmonyOS SDK 基础视觉服务(Core Vision Kit)提供主体分割…

qt 实现窗口置顶,qtdesigner创建的widget窗口集成程序里的用法

参考 https://blog.csdn.net/Larry_Yanan/article/details/123518788 .ui文件如下新建的ui文件,编译一下就会生成对应的 ui_xxx.h 文件,文件内就有对应的 namespace Ui 声明的变量,这个变量要在mainwindow.h中声明,然后在mainwindow.cpp中new出来,具体使用如下 mainwindow…

如何在市场推广活动中实现精准的任务分配?5个项目管理技巧

一、引言 随着市场竞争的加剧和消费者需求的多样化,企业对市场推广活动的要求越来越高。市场推广活动不仅需要创意和精准的目标定位,还需要高效的执行和完善的管理。在这种背景下,如何通过有效的活动管理来提升推广活动的执行力,已成为市场团队面临的一个巨大挑战。 市场推…

Android编译 - 证书介绍

前言全局说明一、说明 1.1 环境: Android1.2 简介 在Android系统中,每个APK文件必须有一个有效的数字证书来证明其来源和完整性。当需要修改APK后再次发布时,原有的签名将不再有效,因此需要重新签名。二、证书工具 2.1 路径: android/build/tools/releasetools/sign_target…

域名解析的QPS防护值是什么?

在当今数字化的时代,互联网已经渗透到生活的方方面面,而域名解析作为互联网运行的关键环节之一,起着至关重要的作用。其中,域名解析的QPS防护值更是保障网络稳定、安全与高效的一个重要指标。 一、QPS 防护值的定义与内涵 QPS,即Queries Per Second,意为每秒查询次数。域…

远程开机详细教程

要实现远程开机,被控端必须满足以下条件: 1.目前仅支持windows系统实现远程开机 2.被控端所在局域网内,需要有另一台设备保持todesk在线 如:其他电脑、iPhone、iPad、Android 设备(手机、平板)、家人的手机(充当辅助开机设备) 如图,辅助开机设备需显示在线,离线状态无法发…

CH585的SPI驱动WS2812

目录 链接: https://pan.baidu.com/s/1Su5dgmVWLre5kH2fYiGwQQ?pwd=wch6 CH573系列/583系列/592系列MCU,在使用SPI模拟WS2812波形时,MISO-PA15引脚上的实时电平,会影响MOSI-PA14引脚上的空闲电平状态,故建议SPI驱动WS2812的场景下,固定PA15的电平,不要接其他外设。异常场…