Codeforces Round 897 (Div. 2)

news/2025/1/18 15:33:56/文章来源:https://www.cnblogs.com/maburb/p/18678501

A. green_gold_dog, array and permutation

题意:给你一个数组\(a\),你要构造一个排列\(b\),使得不同的\(a_i-b_i\)尽可能多。

我们按\(a_i\)从小到大分配\(n\)\(1\),这样\(a_i-b_i\)一定大于\(a_j-b_j\)\((a_i>a_j)\)

点击查看代码
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> id(n);std::iota(id.begin(), id.end(), 0);std::sort(id.begin(), id.end(), [&](int i, int j) {return a[i] > a[j];});std::vector<int> ans(n);for (int i = 0; i < n; ++ i) {ans[id[i]] = i + 1;}for (int i = 0; i < n; ++ i) {std::cout << ans[i] << " \n"[i == n - 1];}
}

B. XOR Palindromes

题意:给你一个长度为\(n\)\(01\)串,问你对于每个\(x \in [1, i]\),能否有一个恰好有\(x\)\(1\)\(01\)串和这个串异或后是回文串。

我们先看原串两边有几个不一样的,假设为\(cnt\),那么\(x\)至少大于等于\(cnt\)。如果\(n\)是偶数,那么我们考虑每次两边同时变回文对应位置的,那么\(\frac{(x - cnt)}{2} <= \frac{n}{2} - cnt\),如果是奇数,可以让中间的那个选择变也可以不变。

点击查看代码
void solve() {int n;std::cin >> n;std::string s;std::cin >> s;std::string ans(n + 1, '0');int cnt = 0;for (int i = 0; i < n / 2; ++ i) {cnt += s[i] != s[n - 1 - i];}for (int i = cnt, j = cnt; j <= n / 2; i += 2, ++ j) {ans[i] = '1';if (n % 2 && i + 1 <= n) {ans[i + 1] = '1';}}std::cout << ans << "\n";
}

C. Salyg1n and the MEX Game

题意:交互题。有一个集合,每次\(Alice\)加入一个数,\(Bob\)减去一个数。每次\(Bob\)减去的数小于\(Alice\)减去的数。问最后\(mex\)最大时多少。‘

诈骗题。假设我们已经让\(mex\)最大了,那此时\(Bob\)删掉一个数我们应该马上再加回来。然后发现我们只有第一次操作有机会让\(mex\)变大。所以第一次加入当前\(mex\),后面\(Bob\)删什么我们加什么。

点击查看代码
void solve() {int n;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}std::set<int> s;for (int i = 0; i < n; ++ i) {s.insert(a[i]);}int mex = 0;while (s.count(mex)) {++ mex;}std::cout << mex << std::endl;while (1) {int x;std::cin >> x;if (x == -1) {break;}std::cout << x << std::endl;}
}

D. Cyclic Operations

题意:你有一个全零的数组,你要让他变成\(b\),每次可以选择一个长度为\(k\)的序列\(l\),序列里的数两两不同,然后让\(a_{l_i}=l_{(i+1)\%k+1}\)。问能不能变成\(b\)

观察发现,如果我们像每个位置要变的数连边,那么会形成一个环,因为每个位置只能连一条出边,所以每条边只在一个环里。也有没在环里的点,但他最终会指向环,这种从环里面搞一些数来配合他就能填好。然后我们考虑怎么填好环里的数。发现如果环的大小不是\(k\),则无法填好。于是判断每个环的大小即可。注意特判\(k=1\)的情况。

点击查看代码
void solve() {int n, k;std::cin >> n >> k;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];-- a[i];}if (k == 1) {for (int i = 0; i < n; ++ i) {if (a[i] != i) {std::cout << "NO\n";return;}}std::cout << "YES\n";return;}std::vector<int> st(n, -1), b(n);for (int i = 0; i < n; ++ i) {if (st[i] == -1) {int j = i;int cnt = 0;while (st[j] == -1) {st[j] = i;b[j] = cnt;j = a[j];++ cnt;}if (st[j] == i && cnt - b[j] != k) {std::cout << "NO\n";return;}}}std::cout << "YES\n";
}

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

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

相关文章

Nexpose 7.3.0 for Linux Windows - 漏洞扫描

Nexpose 7.3.0 for Linux & Windows - 漏洞扫描Nexpose 7.3.0 for Linux & Windows - 漏洞扫描 Rapid7 on-prem Vulnerability Management, released Jan 15, 2025 请访问原文链接:https://sysin.org/blog/nexpose-7/ 查看最新版。原创作品,转载请保留出处。 作者主页…

ABB机器人3HNE00313-1示教器黑屏故障维修

随着工业自动化的快速发展,ABB机器人示教器在生产线上的应用越来越广泛。然而,在使用过程中,示教器偶尔也会出现故障,其中比较常见的一种是ABB工业机械手示教器黑屏故障。 一、ABB工业机器人示教盒黑屏故障原因分析 1. 硬件故障:硬件故障是导致示教器黑屏的主要原因之一。…

windows双击查看ip

如何方便查看本地电脑的ip? 直接上干货: 1、在桌面右击,新建 => 文本文档; 2、重命令为ip.txt 3、双击打开,输入 ipconfig pause , 然后保存; 4、右击文档,重命令为“ip.bat”;5、再次双击此文档,ip地址就出来了; ps: ipconfig:是系统命令,用于查看ip的地址…

一个日h站的Nday

0x00 前言 今天先来无事的我翻起了qq收藏夹。忽然发现了一个去年EDUSRC群里一个老表发的洞。今天就给大家发出来耍耍。 抵制黄色网站人人有责,打造绿色上网环境。 面对正规网站时候,请不要做非法测试!!! 废话就不多说了。 0x01正文 fofa语句 body="<script type=t…

【触想智能】工业电脑一体机在数控机床设备上应用的注意事项以及工业电脑日常维护知识分享

数控技术的应用不但给传统制造业带来了革命性的变化,使制造业成为工业化的象征,而且随着数控技术的不断发展和应用领域的扩大,它对国计民生的一些重要行业(IT、汽车、轻工、医疗等)的发展起着越来越重要的作用,因为这些行业所需装备的数字化已是现代发展的大趋势。随着数控…

day0java准备

Java-001 Markdown 暂时跳过,vscode里未能实现编译 java 1.已配置环境 2.继续学黑马程序员:已到50/200 3.内存4.学到方法(C里函数)

NB!一款基于java开发的漏洞检测工具,集合了泛微、用友、大华、海康、致远、红帆、万户、帆软等漏洞

1、工具介绍 基于 https://github.com/yhy0/ExpDemo-JavaFX 上添加poc 2、工具下载链接: 工具下载:工具下载 3、新增检测漏洞用友NC-Cloud系统接口getStaffInfo存在SQL注入漏洞 用友U8-Cloud ReleaseRepMngAction存在SQL注入漏洞复现(CNVD-2024-33023) 用友U8-CRM系统getDeptN…

网络购物数据分析

#获取数据 import pandas as pd infor=pd.read_csv(buy_input_1.csv) infor.head(20) #选取预观察数据#方法1 # x1=infor["Annual Income"] # print(x1) # x2=infor["Spending Score"] # print(x2)# """ #方法2 # x1=infor.iloc[:,3] # …

了解ESP32睡眠模式及其功耗

转载自:https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/ Insight Into ESP32 Sleep Modes & Their Power ConsumptionThe ESP32 is undeniably a worthy competitor to many WiFi/MCU SoCs, outperforming them in both performance and price. Ho…

某公交管理系统简易逻辑漏洞+SQL注入挖掘

某公交管理系统挖掘 SQL注入漏洞 前台通过给的账号密码,进去 按顺序依次点击1、2、3走一遍功能点,然后开启抓包点击4当点击上图的4步骤按钮时,会抓到图下数据包,将其转发到burp的重放模块构造以下注入poc,可见注入延时了五秒,用户输入的语句成功拼接到原有的SQL语句上执行…

记一次常规的网络安全渗透测试

前言 上个月根据领导安排,需要到本市一家电视台进行网络安全评估测试。通过对内外网进行渗透测试,网络和安全设备的使用和部署情况,以及网络安全规章流程出具安全评估报告。本文就是记录了这次安全评估测试中渗透测试部分的内容,而且客户这边刚刚做过了一次等保测评,算一下…

工具 | Hfish

0x00 简介 HFish是一款社区型免费蜜罐。 下载地址 HFish下载: HFish下载 0x01 功能说明支持多种蜜罐服务支持自定义Web蜜罐支持流量牵引支持端口扫描感知能力支持多种告警方式注:仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不…