Codeforces Round 987 (Div. 2) ABCD

链接:

Codeforces Round 987 (Div. 2)

A:Penchick and Modern Monument

大意:

       单调非增序列操作多少步变成单调非减

思路:

       最后的数一定是相同的,为出现次数最多的那个数,结果就是n减去出现次数最多的数

代码:

#include <bits/stdc++.h>using namespace std;
#define int long long
const int N = 2e5 + 10, INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
#define pb push_back
#define  vi vector<int>
#define  vvi vector<vector<int>>
#define  vii vector<pair<int, int>>
#define ff first 
#define ss second 
// ++   ~!    */+-    <<>>    <>  ==   &^|   &&|| =void solve()
{int n;cin >> n;vi a(n + 1);for (int i = 1; i <= n; i++)cin >> a[i];int mx = 0;for (int i = 1; i <= n; i++){int j = i;while (i <= n && a[i] == a[j])i++;mx = max(i - j, mx);i--;}cout << n - mx << endl;
}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) solve();return 0;
}
/*   /\_/\
*   (= ._.)
*   / >  \>
*/

 B:Penchick and Satay Sticks

大意:

        一个排列转换成123456...n的最小字典序排列,每次转换只能相邻1个并且数值不能相差超过1,求是否能转换 

思路:

        相差不能超过1,则只能与位置相邻的数进行交换,即如果i不在位置i上,必然就在位置i-1或者i + 1上,如果都没有,就不能转换

        那么可以从左到右遍历,如果 i !=a[i] 并且跟后边差1,就跟右边交换即可,换完还不等,就不能转换

代码:

#include <bits/stdc++.h>using namespace std;
#define int long long
const int N = 2e5 + 10, INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
#define pb push_back
#define  vi vector<int>
#define  vvi vector<vector<int>>
#define  vii vector<pair<int, int>>
#define ff first 
#define ss second 
// ++   ~!    */+-    <<>>    <>  ==   &^|   &&|| =void solve()
{int n;cin >> n;vi a(n + 1);for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++){if (a[i] != i){if(i + 1 <= n && a[i + 1] == i && abs(a[i + 1] - a[i])==1)swap(a[i], a[i + 1]);else{cout << "NO" << endl;return;}}}cout << "YES" << endl;
}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1; cin >> t;while (t--) solve();return 0;
}
/*   /\_/\
*   (= ._.)
*   / >  \>
*/

C:Penchick and BBQ Buns

大意:

        给一个长度n的每个点上都赋一个值,如果赋了相同的值,任意两个相同的值之间要满足距离之差等于某个整数的平方和,求赋值方案,没有则输出-1

思路:

        先对n进行奇偶分析,如果偶数的话就好了,直接两两相邻,距离差为1

        奇数的话可以转换成偶数的情况,我们需要一个三个点的那就是距离为9和距离为16的,最小的情况下给1,10,26同种,发现1-10之间可以填偶数个,直接填就行,10到26之间填奇数个,可以多一个距离差为4的一个在10-26之内,一个在之外,这样距离差为4的里面再塞一对,前面的几对也塞一下就行了,所以27是最小的奇数合法情况

代码:

#include <bits/stdc++.h>using namespace std;
#define int long long
const int N = 2e5 + 10, INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
#define pb push_back
#define  vi vector<int>
#define  vvi vector<vector<int>>
#define  vii vector<pair<int, int>>
#define ff first 
#define ss second 
// ++   ~!    */+-    <<>>    <>  ==   &^|   &&|| =void solve()
{int n;cin >> n;if (n & 1){if (n < 27)cout << -1 << endl;else{vi ans(n + 1);int cnt = 2;int num = 0;for (int i = 1; i <= n; i++){if (i == 1 || i == 10 || i == 26)ans[i] = 1e6;else if (i == 23 || i == 27)ans[i] = 1e6-1;else{ans[i] = cnt;num++;if (num == 2){num = 0;cnt++;}}}for (int i = 1; i <= n; i++)cout << ans[i] << ' ';}}else{int num = n / 2;for (int i = 1; i <= num; i++)cout << i << " " << i << " ";cout << endl;}}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) solve();return 0;
}
/*   /\_/\
*   (= ._.)
*   / >  \>
*/

D:Penchick and Desert Rabbit

大意:

        一个数组,位于i的数可以跳到右边比他小的数,可以跳到左边比他大的数,求从每一位开始最后可以跳到的最大数

思路:

        有一个性质就是,一个数如果能跳到另一个数上,那么这两个位置的答案会一样

        首先要想的是要跳到最大,应该是先往右跳,跳到最靠右的,然后往左跳才会有最大的,但是从左到右找最靠右的不太好找,pass

        从右往左找的话,可以知道最靠右的就是自己,然后这个的答案就是前n个取最大,并且可知右边的能跳的肯定大于等于左边的能跳到的数,对于位置i,直接取i后面数的最小值,看看i是否大于后面最小值,如果大于,那么,那么i肯定直接或间接能到i + 1,那么i的答案跟i + 1的答案是相同的;如果小于等于,那么i到不了右边任何一个,只能取前面的最大值。

        所以求一下前缀最大值和后缀最小值依次从右往左即可。

代码:

#include <bits/stdc++.h>using namespace std;
#define int long long
const int N = 2e5 + 10, INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
#define pb push_back
#define  vi vector<int>
#define  vvi vector<vector<int>>
#define  vii vector<pair<int, int>>
#define ff first 
#define ss second 
// ++   ~!    */+-    <<>>    <>  ==   &^|   &&|| =void solve()
{int n;cin >> n;vi a(n + 1);for (int i = 1; i <= n; i++)cin >> a[i];vi ans(n + 1), p(n + 1), s(n + 1);p[1] = a[1], s[n] = a[n];for (int i = 2; i <= n; i++)p[i] = max(p[i - 1], a[i]);for (int i = n - 1; i > 0; i--)s[i] = min(a[i], s[i + 1]);ans[n] = p[n];for (int i = n - 1; i; i--){if (p[i] > s[i + 1])ans[i] = ans[i + 1];else ans[i] = p[i];}for (int i = 1; i <= n; i++)cout << ans[i] << ' ';cout << endl;
}signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) solve();return 0;
}
/*   /\_/\
*   (= ._.)
*   / >  \>
*/

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

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

相关文章

CPU的性能指标总结(学习笔记)

CPU 性能指标 我们先来回顾下&#xff0c;描述 CPU 的性能指标都有哪些。 首先&#xff0c;最容易想到的应该是 CPU 使用率&#xff0c;这也是实际环境中最常见的一个性能指标。 用户 CPU 使用率&#xff0c;包括用户态 CPU 使用率&#xff08;user&#xff09;和低优先级用…

深度学习反向传播需要可导还是需要可微

针对这个问题&#xff0c; 我们先说结论&#xff0c; 在深度学习中&#xff0c;反向传播需要可导性&#xff0c;而不是严格的可微分性。这是因为反向传播的核心是计算损失函数相对于模型参数的导数&#xff08;梯度&#xff09;&#xff0c;以便通过梯度下降法进行参数更新。 …

【go从零单排】Environment Variables环境变量

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;环境变量是用于配置程序行为的一种常见方式。它们可以用…

信捷PLC转以太网连接电脑方法

信捷XC/XD/XL等系列PLC如何上下载程序?可以选择用捷米特JM-ETH-XJ模块轻松搞定,并不需要编程&#xff0c;即插即用&#xff0c;具体看见以下介绍&#xff1a; 产品介绍 捷米特JM-ETH-XJ是专门为信捷PLC转以太网通讯面设计&#xff0c;可实现工厂设备信息化需求&#xff0c;对…

面试篇-项目管理

⼀、构建管理 项目为什么选择Maven构建? 选择Maven进行项目构建有以下几个主要原因&#xff1a; 1. 依赖管理&#xff1a;Maven 提供了强大的依赖管理功能&#xff0c;可以自动下载项目所需的第三方库和依赖&#xff0c;并且可以管理这些依赖的版本、范围等信息。这简化了项…

【golang-技巧】-线上死锁问题排查-by pprof

1.背景 由于目前项目使用 cgo golang 本地不能debug, 发生死锁问题&#xff0c;程序运行和期待不一致&#xff0c;通过日志排查可以大概率找到 阻塞范围&#xff0c;但是不能找到具体问题在哪里&#xff0c;同时服务器 通过k8s daemonset 部署没有更好的方式暴露端口 获取ppr…

CentOS7.9 源码编译 FreeSWITCH 1.10.12

建议 CentOS7.9 最小安装&#xff0c;不然容易冲突 #!/bin/bash### 更换 repomkdir /root/repo mv /etc/yum.repos.d/*.repo /root/repocat <<"EOF" > /etc/yum.repos.d/ali.repo [base] nameCentOS-$releasever - Base - mirrors.aliyun.com failovermetho…

AVL树的删除方法简单实现

看过前面的AVL树的介绍和插入方法实现AVL树了解并简单实现-CSDN博客&#xff0c;接着可以来学习删除方法的实现 目录 1.AVL树的删除 2.平衡因子调节 3.删除代码逻辑 4.AVL树的整体代码 1.AVL树的删除 因为AVL树也是二叉搜索树&#xff0c;可按照二叉搜索树的方式将节点删除…

ArcGIS的汉字(亚洲文本)垂直标注

01 需求说明 实现ArcGIS的汉字&#xff08;亚洲文本的垂直标注&#xff09;。 启用 Maplex 标注引擎。 在标注 工具条上单击标注管理器按钮 。 选中要进行标注的图层旁边的复选框。 选择图层下方的标注分类。 单击符号。 选中 CJK 字符方向复选框。 仅当字体有垂直的文本度…

C#中 layout的用法

在C#中&#xff0c;layout并不是一个直接用于C#语言本身的关键字或特性。然而&#xff0c;layout在与C#紧密相关的某些上下文中确实有其用途&#xff0c;特别是在涉及用户界面&#xff08;UI&#xff09;设计和数据展示时。以下是几个常见的与layout相关的用法场景&#xff1a;…

ChatGPT登录失败的潜在原因分析

随着人工智能技术的迅速发展&#xff0c;ChatGPT作为一种强大的语言处理工具&#xff0c;已经成为许多用户日常生活中不可或缺的一部分。然而&#xff0c;部分用户在尝试登录时遇到困难&#xff0c;导致无法顺利访问该平台。这些问题可能来源于多种因素&#xff0c;其中静态住宅…

飞凌嵌入式RK3576核心板已适配Android 14系统

在今年3月举办的RKDC2024大会上&#xff0c;飞凌嵌入式FET3576-C核心板作为瑞芯微RK3576处理器的行业首秀方案重磅亮相&#xff0c;并于今年6月率先量产发货&#xff0c;为客户持续稳定地供应&#xff0c;得到了众多合作伙伴的认可。 FET3576-C核心板此前已提供了Linux 6.1.57…

基于python的dlib库的人脸识别实现

1、环境搭建 基于dlib库的人脸识别环境配置需求如下: conda create -n dlibFace python3.6.4 conda activate dlibFacepip install dlib19.8.1 pip install opencv-python3.4.1.15 pip install tqdm 安装如下: 2、模块介绍 2.1 源代码下载 源代码点击:下载源代码 2.2 源码…

Ubuntu问题 -- 允许ssh使用root用户登陆

目的 新重装的系统, 普通用户可以使用ssh登陆服务器, 但是root不能使用ssh登陆 方法 vim 编辑ssh配置文件 sudo vim /etc/ssh/sshd_config找到 PermitRootLogin 这一行, 把后面值改成 yes 重启ssh sudo service sshd restart然后使用root账号登陆即可

STM32寄存器结构体详解

一、寄存器结构体详解 对于STM32而言&#xff0c;使用一个结构体将一个外设的所有寄存器都放到一起 二、修改驱动 1、添加清除bss段代码 2、添加寄存器结构体 在寄存器结构体中添加寄存器的时候一定要注意地址的连续性&#xff0c;如果地址不连续的话&#xff0c;要添加占位…

分享一个给AI 编辑器阅读的标准需求文档

任务管理系统项目文档 1. 项目概述 1.1 项目背景 本项目旨在开发一个现代化的个人任务管理 Web 应用&#xff0c;帮助用户高效管理日常任务。 1.2 目标用户 主要用户群体&#xff1a;学生、上班族、自由职业者使用场景&#xff1a;个人任务管理、时间规划、项目追踪用户规…

DAY6 线程

作业1&#xff1a; 多线程实现文件拷贝&#xff0c;线程1拷贝一半&#xff0c;线程2拷贝另一半&#xff0c;主线程回收子线程资源。 代码&#xff1a; #include <myhead.h> sem_t sem1; void *copy1()//子线程1函数 拷贝前一半内容 {int fd1open("./1.txt",O…

第六十四周周报 TCN-LSTM

文章目录 week 64 TCN-LSTM摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 数据分析4.2 混合深度学习框架的开发 5. 实验结果6.结论 week 64 TCN-LSTM 摘要 本周阅读了题为A hybrid deep learning approach to improve real-time effl…

单元测试时报错找不到@SpringBootConfiguration

找到问题出现原因&#xff1a; 错误表示 Spring Boot 在运行测试时无法找到 SpringBootConfiguration 注解。 通常&#xff0c;SpringBootTest注解用于加载 Spring Boot 应用上下文&#xff0c;但它需要找到一个带有SpringBootConfiguration&#xff08;或者Configuration&am…

性能优化、安全

一、懒加载 延迟加载&#xff0c;减轻服务器压力&#xff0c;减小浏览器负担 图片懒加载 img.offsetTop < window.innerHeight document.body.srcollTop 二、回流与重绘 回流&#xff1a;修改字体、颜色、背景等 重绘&#xff1a; 增加、删除、内容尺寸等会重绘 回流不一定…