Codeforces Round 1022 (Div. 2)(ABC)

A. Permutation Warm-Up

翻译:

        对于长度为 n 的排列 p,我们定义函数:
        f(p)=\sum\limits_{i=1}^n|p_i-i|
        给你一个数 n。你需要计算函数 f(p) 在考虑从 1 到 n 的所有可能的数字排列时,可以取多少个不同的值。

思路:

        按序排列时和为0,当有一端值+1,必有一端值-1即sum+2。由此会得到的和都为偶数。答案为sum_max/2+1。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;void solve(){int n;cin>>n;int res = 0;for (int l=n,i=1;i<=n;i++){res+=abs(l-i);l--;}cout<<res/2+1<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 四舍五入中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}



B. SUMdamental Decomposition

翻译:

        在你最近的一个生日上,你的好朋友莫里斯送给你一对数字 n
 和 x ,并要求你构造一个长度为 n 的正数数组 a ,使得 a_1\oplus a_2 \oplus \cdots \oplus a_n=x

        这个任务对你来说似乎太简单了,因此你决定给莫里斯一个回礼,在所有这样的数组中构造一个元素之和最小的数组。你马上想到了一个合适的数组;但是,由于写下来太费时间,莫里斯只能选择元素之和。

思路:

        一个数可以被分成多个不同二的幂次相加。

        要让和足够小,可先将 x 拆成不同的2的幂次数,再对还要填的数进行添加。设还要填 n 个数。

        当 n 为偶数时,都为1。

        带 n 为奇数时,先摘掉一个 num,其余都为1。num 对于被拆分的2的幂次数二进制有数位0为0情况,则可将该数与num都+1,否则num为2,找个数也+2。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;
void solve(){ll n,x;cin>>n>>x;if (n==1 && x==0){cout<<-1<<"\n";return;}ll res = x;ll tmp = x,cnt=0;// 有两个及以上的1吗while (tmp){if (tmp%2==1){cnt++;}tmp/=2;}n = max(0ll,n-cnt);if (n%2==0){res += n;}else if (n%2==1){res+=n-1;if (x==1 || x==0) res+=4;else res +=2;}cout<<res<<"\n";
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 四舍五入中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}



C. Neo's Escape

翻译:

        尼奥想要逃离母体。在他面前,有 n 个按钮排成一排。每个按钮的权重都是一个整数:a_1,a_2,...,a_n

        尼奥无法移动,但他可以创造和移动克隆人。这意味着他可以以任意顺序执行以下两种类型的操作,数量不限:

  • 在特定按钮前创建一个克隆体。
  • 将现有克隆体向左或向右移动一个位置。

        只要克隆体出现在另一个尚未按下的按钮前,无论它是被创建还是被移动,它都会立即按下该按钮。如果按钮已经被按下,克隆人就什么也做不了--按钮只能按一次。

        要想让尼奥逃脱,他需要按顺序按下所有按钮,使它们的权重序列不递增--也就是说,如果  b_1,b_2,...,b_n 是按顺序按下的按钮的权重,那么必须成立:b_1\geq b_2\geq\cdots\geq b_n

        你的任务是确定尼欧需要创建的最小克隆数,以便按有效顺序按下所有按钮。

思路:

        不考虑有权值相同点的情况下,当一个点值为局部最大值时,它是必定要被创建的,而不是的则可通过局部最大值的左右移动被合理按下。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 2e5+10;void solve(){int n;cin>>n;int pre = -1;vector<int> a={0};for (int num,i=0;i<n;i++){cin>>num;if (num!=pre){a.push_back(num);}pre = num;}a.push_back(0);int res = 0;for (int i=1;i<a.size()-1;i++){res+=(a[i]>a[i-1] && a[i]>a[i+1]);}cout<<res<<"\n";
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 四舍五入中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}return 0;
}

 

  有建议可以评论,我会积极改进qwq。

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

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

相关文章

数据结构------C语言经典题目(6)

1.数据结构都学了些什么&#xff1f; 1.基本数据类型 算数类型&#xff1a; char&#xff08;字符&#xff09;、int&#xff08;整数&#xff09;、float&#xff08;单精度浮点数&#xff09;、double&#xff08;双精度浮点数&#xff09;等。 枚举类型&#xff1a; enum…

如何封装一个线程安全、可复用的 HBase 查询模板

目录 一、前言&#xff1a;原生 HBase 查询的痛点 &#xff08;一&#xff09;连接管理混乱&#xff0c;容易造成资源泄露 &#xff08;二&#xff09;查询逻辑重复&#xff0c;缺乏统一的模板 &#xff08;三&#xff09;多线程/高并发下的线程安全性隐患 &#xff08;四…

【中间件】bthread_基础_TaskControl

TaskControl 1 Definition2 Introduce**核心职责** 3 成员解析**3.1 数据结构与线程管理****3.2 任务调度与负载均衡****3.3 线程停放与唤醒&#xff08;ParkingLot&#xff09;****3.4 统计与监控** 4 **工作流程**5 **设计亮点**6 **使用场景示例**7 **总结**8 学习过程中的疑…

win11 终端 安装ffmpeg 使用终端Scoop

1、安装scoop (Windows 包管理器) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb get.scoop.sh | iex 2、使用scoop来安装ffmpeg scoop install ffmpeg 3、测试一下ffmpeg&#xff0c;将Mp3文件转为Wav文件 ffmpeg -i A.mp3 A.wav 然后我们就看到A.wav生成…

力扣838.推多米诺随笔

“生活就像海洋&#xff0c;只有意志坚强的人&#xff0c;才能到达彼岸。”—— 马克思 题目 n 张多米诺骨牌排成一行&#xff0c;将每张多米诺骨牌垂直竖立。在开始时&#xff0c;同时把一些多米诺骨牌向左或向右推。 每过一秒&#xff0c;倒向左边的多米诺骨牌会推动其左侧…

超级好用的​​参数化3D CAD 建模​​图形库 (CadQuery库介绍)

CadQuery 库详细介绍​​ ​​CadQuery​​ 是一个基于 ​​Python​​ 的 ​​参数化 3D CAD 建模​​ 库&#xff0c;允许用户通过编写代码&#xff08;而不是传统 GUI&#xff09;来创建精确的 ​​3D 模型​​。它特别适用于 ​​自动化设计、机械工程、3D 打印​​ 等场景…

HBM的哪些事

命令操作 这也许是DDR往HBM演进的一些奇淫技巧。 本篇内容属于杂谈&#xff0c;关于HBM的奇淫技巧&#xff0c;随后出专题介绍。

Python基于深度学习的网络舆情分析系统(附源码,部署)

大家好&#xff0c;我是Python徐师兄&#xff0c;一个有着7年大厂经验的程序员&#xff0c;也是一名热衷于分享干货的技术爱好者。平时我在 CSDN、掘金、华为云、阿里云和 InfoQ 等平台分享我的心得体会。 &#x1f345;文末获取源码联系&#x1f345; 2025年最全的计算机软件毕…

滑动窗口leetcode 209和76

一、leetcode 209. 长度最小的子数组 代码&#xff1a; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int left 0;int sum 0;int res 100001;for(int right 0;right <n;right){sum nums[right];while(s…

node.js 实战——mongoDB 续一

mongoDB的基本指令 进入mongodb mongo显示当前的所有数据库 show dbs # 或者 show databases切换数据库/进入指定数据库 使用这个命令的时候&#xff0c;是不要求这个数据库是否创建 use 数据库名显示当前数据库 db显示数据库中所有集合 show collections数据库的CRUD的…

SVMSPro平台获取Websocket视频流规则

SVMSPro平台获取Websocket视频流规则 Websocket 的服务端口为&#xff1a;53372&#xff0c;如需要公网访问需要开启这个端口 这里讲的是如何获取长效URL&#xff0c;短效&#xff08;时效性&#xff09;URL也支持&#xff0c;下回讲 一、如何获取Websocket实时流视频 ws:/…

Arduino按键开关编程详解

一、按键开关的基本原理与硬件连接 1.1 按键开关的工作原理 按键开关是一种常见的输入设备&#xff0c;其核心原理基于机械触点的闭合与断开。当用户按下按键时&#xff0c;内部的金属片会连接电路两端&#xff0c;形成通路&#xff1b;松开按键后&#xff0c;金属片在弹簧作…

我的日记杂文

Sequoia sempervirens 北美红杉树 Troll 洞穴巨人 喜欢在网上搞事的人 piss off 滚开 让人恼火的 欧洲美甲 60euor - 30euro 拖车 mobie house Motel 汽车旅馆 Minoxidil 米诺地尔 Health insurance 医疗保险 casetify 香港手机品牌 coolant 汽车防冻液 Auto tint film 汽车贴…

数字智慧方案5867丨智慧建造(BIM技术智慧工地)在施工阶段的实践与应用方案(90页PPT)(文末有下载方式)

资料解读&#xff1a;智慧建造(BIM技术智慧工地)在施工阶段的实践与应用方案 详细资料请看本解读文章的最后内容。 在当今的建筑行业中&#xff0c;智慧建造已成为提升施工效率和质量的关键手段。随着科技的进步&#xff0c;智慧建造结合了物联网、大数据、人工智能等技术&am…

机器学习中的标签策略:直接标签、代理标签与人工数据生成

机器学习中的标签策略&#xff1a;直接标签、代理标签与人工数据生成 摘要 本文深入探讨了机器学习领域中标签的关键概念&#xff0c;包括直接标签与代理标签的定义、优缺点比较&#xff0c;以及人工生成数据的相关内容。通过详细实例和练习&#xff0c;帮助读者理解如何选择…

从0搭建Transformer

1. 位置编码模块&#xff1a; import torch import torch.nn as nn import mathclass PositonalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding, self).__init__()self.dropout nn.Dropout(pdropout)# [[1, 2, 3],# [4, 5…

【Bootstrap V4系列】学习入门教程之 表格(Tables)和画像(Figure)

Bootstrap V4系列 学习入门教程之 表格&#xff08;Tables&#xff09;和画像&#xff08;Figure&#xff09; 表格&#xff08;Tables&#xff09;一、Examples二、Table head options 表格头选项三、Striped rows 条纹行四、Bordered table 带边框的表格五、Borderless table…

在C# WebApi 中使用 Nacos02: 配置管理、服务管理实战

一、配置管理 1.添加一个新的命名空间 这里我都填写为publicdemo 2.C#代码配置启动 appsetting.json加上&#xff1a; (nacos默认是8848端口) "NacosConfig": {"ServerAddresses": [ "http://localhost:8848" ], // Nacos 服务器地址"Na…

如何搭建spark yarn 模式的集群集群。

下载 App 如何搭建spark yarn 模式的集群集群。 搭建Spark on YARN集群的详细步骤 Spark on YARN模式允许Spark作业在Hadoop YARN资源管理器上运行&#xff0c;利用YARN进行资源调度。以下是搭建步骤&#xff1a; 一、前提条件 已安装并配置好的Hadoop集群&#xff08;包括HDF…

C++--入门基础

C入门基础 1. C的第一个程序 C继承C语言许多大多数的语法&#xff0c;所以以C语言实现的hello world也可以运行&#xff0c;C中需要把文件定义为.cpp&#xff0c;vs编译器看是.cpp就会调用C编译器编译&#xff0c;linux下要用g编译&#xff0c;不再是gcc。 // test.cpp #inc…