Codeforces Round 1002 (Div. 2)(部分题解)

server/2025/2/5 16:15:26/

补题链接

A. Milya and Two Arrays

 思路:题意还是比较好理解,分析的话我加了一点猜的成分,对a,b数组的种类和相加小于4就不行,蒋老师的乘完后小于等于2也合理。

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{int n, m, k;cin >> n;auto check = [&]() ->int{set<int> s;for (int i = 0; i<n; i++){int x; cin >> x;s.insert(x);}return s.size();};if (check()+check() > 3) cout << "YES" << endl;else cout << "NO" << endl;}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;  cin >> t;while (t--){solve();}return 0;
}

B. Cost of the Array

 思路:这道题有点贪心在里面。

想要最小的代价,那从最小的代价为1开始做打算,怎样来计算1呢,当为前n-k+2个(不包含第一个)里面存在不为1,则分成的k块的第2块为此块,能使代价为最小1.

 

此外,想让代价最大,就得当k等于n,并且每偶数块是从1开始的递增。

因此我们可以来完善第一部分,当k不等于n时,代价不为1的话,就说明蓝色部分全为1,因为k小于n,所以第二位与第三位肯定是1,可以结合在一起使得最小的代价为2(除了当n=3,k=2),当 n=3,k=2:1 1 2,可以组成[[1],[1],[2]],则数组B为[1, 0],代价为2,综上整合一下为AC代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
void solve()
{int n, m, k;cin >> n >> k;vi a(n);for (auto &it : a) cin >> it;if (k == n){for (int i = 1; i<n; i+=2){if (a[i]*2 != i+1){cout << (i+1)/2 << endl;return ;}}cout << k/2+1 << endl;}else {for (int i = 1; i<=n-k+1; i++){if (a[i] != 1){cout << 1 << endl;return ;}}cout << 2 << endl;}
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;cin >> t;while (t--){solve();}return 0;
}

http://www.ppmy.cn/server/165175.html

相关文章

【CPP】迭代器失效问题 static和inline

文章目录 迭代器失效**常见的迭代器失效场景**1. **std::vector**2. **std::deque**3. **std::list**4. **std::map / std::set**5. **std::unordered_map / std::unordered_set** **总结&#xff1a;迭代器失效场景****如何避免迭代器失效&#xff1f;** static 和 inline1. s…

【黄啊码】常用AIGC办公工具大全

工具名称&#xff1a;办公小浣熊 功能简介&#xff1a;办公小浣熊是一款智能办公助手&#xff0c;专注于提升办公效率。它支持文档生成、数据分析、PPT制作等多功能&#xff0c;通过自然语言交互&#xff0c;帮助用户快速完成复杂任务。无论是撰写报告、整理数据&#xff0c;还…

寒假(一)

请使用消息队列实现2个终端之间互相聊天 终端一 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h&g…

LVGL+FreeRTOS实战项目:智能健康助手(lcd篇)

1.8寸彩色TFT显示屏简介 接线图 我们选用的是分辨率为128*160的彩色显示屏&#xff0c;采用的SPI接口&#xff0c;通过我们STM32的SPI外设&#xff0c;来和我们的屏幕进行通信&#xff0c;以显示我们需要显示的图片。 软件部分 #include "lcd_driver.h"//液晶IO初始…

DNS缓存详解(DNS Cache Detailed Explanation)

DNS缓存详解 清空DNS缓存可以让网页访问更快捷。本文将从什么是DNS缓存、为什么清空DNS缓存、如何清空DNS缓存、清空DNS缓存存在的问题四个方面详细阐述DNS缓存清空的相关知识。 一、什么是DNS缓存 1、DNS缓存的定义&#xff1a; DNS缓存是域名系统服务在遇到DNS查询时自动…

计算机网络中常见高危端口有哪些?如何封禁高危端口?

保障网络安全&#xff0c;从封禁高危端口开始&#xff01; 在计算机网络中&#xff0c;端口是设备与外界通信的“大门”&#xff0c;但某些端口因常被黑客利用而成为高危入口。封禁这些端口是防御网络攻击的关键一步。本文将详解 10个常见高危端口&#xff0c;并提供多平台封禁…

JVM监控和管理工具

基础故障处理工具 jps jps(JVM Process Status Tool)&#xff1a;Java虚拟机进程状态工具 功能 1&#xff1a;列出正在运行的虚拟机进程 2&#xff1a;显示虚拟机执行主类(main()方法所在的类) 3&#xff1a;显示进程ID(PID&#xff0c;Process Identifier) 命令格式 jps […

2024年终总结来了

忘记发CSDN的年度总结了&#xff0c;今天补上吧 说实话&#xff0c;今年过得不是特别好&#xff0c;感觉遇到了瓶颈&#xff0c;人生变得迷茫起来。不知道大家有没有同样的感受 刚毕业的时候人生充满了憧憬&#xff0c;慢慢的随着年龄变大后&#xff0c;就会觉得一事无成&…