Codeforces Round 987 (Div. 2)(前四道)

A. Penchick and Modern Monument

翻译:

        在繁华大都市马尼拉的摩天大楼中,菲律宾最新的 Noiph 购物中心刚刚竣工!建筑管理方 Penchick 订购了一座由 n 根支柱组成的先进纪念碑。

        纪念碑支柱的高度可以用一个由 n 个正整数组成的数组 h 来表示,其中 h_{i} 表示 1 到 n 之间所有 i 的第 i 根支柱的高度。

        彭契克希望石柱的高度不递减,即 1 到 n-1 之间所有 i 的高度为h_{i}\leq h_{i+1}。然而,由于混淆不清,纪念碑的高度反而是非递增的,即对于 1 到 n-1 之间的所有 i,h_{i}\geq h_{i+1}

幸运的是,彭奇克可以修改石碑,并根据需要多次对石柱进行以下操作:

  • 将支柱的高度修改为任意正整数。形式上,选择一个下标 1\leq i\leq n 和一个正整数 x,然后赋值 h_{i}:=x

        帮助彭奇克确定使纪念碑支柱的高度不递减所需的最少操作次数 .

思路:

  变为同一高度最好,选择同一高度最多的柱子为标准。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;void solve(){int n;int maxx = 0;  vector<int> nums(100,0);cin>>n;for (int i=0,num;i<n;i++){cin>>num;nums[num]++;maxx = max(maxx,nums[num]);}  cout<<n-maxx<<endl;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();}

B. Penchick and Satay Sticks

 翻译:

        Penchick 和他的朋友 Kohane 正在印度尼西亚旅游,他们的下一站是泗水!

        在泗水熙熙攘攘的小吃摊上,Kohane 买了 n 根沙爹,把它们排成一行,其中第 i 根沙爹的长度为 p_{i}。已知 p 是长度为 n 的排列。

        彭奇克想把沙爹棒按长度递增的顺序排列,这样,每 1\leq i\leq n时,p_{i}=i。为了好玩,他们制定了一条规则:只能交换长度相差 1 的相邻沙爹棒。从形式上看,他们可以执行以下操作任意多次(包括零次):

  • 选择一个下标(1\leq i\leq n-1),使得 |p_{i+1}-p_{i}|=1
  • 交换 p_{i}p_{i+1}

判断是否可以通过执行上述操作对排列 p 进行排序,从而对嗲嗲棒进行排序。

思路:

当左边比当前数大2即以上的数时,那个数必定换不到当前数的右边。遍历时维护左边最大值即可。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;void solve(){int n;    cin>>n;vector<int> a(n);for (int i=0;i<n;i++) cin>>a[i];if (n==2||n==1){cout<<"YES"<<endl;return;}else{int maxx = a[0];for (int i=1;i<n;i++){if (maxx>a[i]+1){cout<<"NO"<<endl;return;}maxx = max(a[i],maxx);}cout<<"YES"<<endl;}
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}

C. Penchick and BBQ Buns

 翻译:

        Penchick 喜欢两样东西:方块数字和港式烧腊包!在 Penchick 生日的时候,Kohane 想送他一份礼物:n 个从左到右排列的烧腊包。烧腊包有 10^{6} 种馅料可供选择,从 1 到 10^{6}。为了确保彭奇克会喜欢这份礼物,科哈尼有几个目标:

  • 每种馅料都不能使用一次;也就是说,每种馅料要么完全不出现,要么至少出现两次。
  • 对于具有相同馅料的两个包子 i 和 j,它们之间的距离 |i\ -\ j| 必须是完全平方。

        帮助 Kohane 找到选择包子馅的有效方法,或者确定是否不可能满足她的目标!如果有多个解决方案,请打印其中任何一个。

思路:

对于n为偶数,相同馅料间隔为i,i+1;

        n为奇数时,由于存在3^{2}+4^{2}=5^{2},即可以有三个相同的馅料位置为1,10,26,10到26间为奇数有一个没配对,而11+16=27,即11可以与27配对。那么结论即为n>=27,位置1,10,26填相同馅,11,27填相同馅料,剩下的为偶数可以通过偶数情况求解。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;void solve(){int n;  cin>>n;vector<int> a(n+1,0);if (n%2==1){if (n>=27){a[1] = 1;a[10] = 1;a[26] = 1;a[11] = 2;a[27] = 2;int cnt = 3,f = 0;for (int i=1;i<=n;i++){if (a[i]==0){a[i] = cnt;f++;}if (f==2){f = 0;cnt++;}}}else{cout<<-1<<endl;return;}}else{int cnt = 1;for (int i=1;i<=n;i+=2){a[i] = cnt;a[i+1] = cnt;cnt++;}}for (int i=1;i<n;i++){cout<<a[i]<<" ";}cout<<a[n]<<endl;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();}

D. Penchick and Desert Rabbit

翻译:

        Penchick 致力于挑战自己的极限,在阿拉伯沙漠的正午阳光下,他向自己发起了挑战!

        当彭奇克沿着一片线状绿洲跋涉时,他发现一只沙漠兔正准备沿着一排棕榈树跳跃。一共有 n 棵棕榈树,每棵树的高度用 a_{i} 表示。

        如果以下条件之一完全为真,兔子就能从第 i 棵树跳到第 j 棵树:

  • j<i 且 a_{j}>a_{i}:兔子可以向后跳到更高的树上。
  • j>i 且 a_{j}<a_{i}:兔子可以向前跳到较矮的树上。

对于 1 到 n 中的每个 i,确定兔子从第 i 棵树开始所能到达的所有树的最大高度。

思路:

        对于每个可跳的位置,可以任意往来,构成连通块。从左到右,维护每个连通块最大值,当前值小于连通块时,合并连通块,并更新连通块最大值。

        每个位置的答案就是所属连通块的最大值。

代码:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
// using pll = pair<ll,ll>;
const int N = 5e5+10;
vector<int> f(N),sz(N);
int find(int k){return f[k]==k ? f[k] : f[k] = find(f[k]);
}
void add(int x,int y){x = find(x);y = find(y);if (x==y) return;if (sz[x]<sz[y]) swap(x,y);f[y] = x;sz[x] += sz[y];
}int n;
vector<int> nums(N);void solve(){int n;cin>>n;for (int i=1;i<=n;i++){cin>>nums[i];sz[i] = 1;f[i] = i;}priority_queue<pair<int,int>> piece1;for (int i=1;i<=n;i++){int temp = nums[i];while (!piece1.empty()){int x = piece1.top().first, y = piece1.top().second;if (x>nums[i]){temp = max(x,temp);add(y,i);piece1.pop();}else{break;}}piece1.push(make_pair(temp,find(i)));}map<int,int> mp;while (!piece1.empty()){int x = piece1.top().first, y = piece1.top().second;piece1.pop();mp[find(y)] = x;}for (int i=1;i<n;i++){cout<<mp[find(i)]<<" ";}cout<<mp[find(n)]<<endl;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

探索AI驱动的企业知识库:提升管理效率的新利器

对于企业而言&#xff0c;如何高效管理知识、提升团队协作、加速决策过程&#xff0c;已成为生存与发展的关键。而人工智能(AI)的迅速发展为解决这些问题提供了新的思路和工具。越来越多的企业开始构建AI驱动的知识库&#xff0c;以实现信息的智能管理与利用。本文将深入探讨AI…

C语言项⽬实践-贪吃蛇

目录 1.项目要点 2.窗口设置 2.1mode命令 2.2title命令 2.3system函数 2.Win32 API 2.1 COORD 2.2 GetStdHandle 2.3 CONSOLE_CURSOR_INFO 2.4 GetConsoleCursorInfo 2.5 SetConsoleCursorInfo 2.5 SetConsoleCursorPosition 2.7 GetAsyncKeyState 3.贪吃蛇游戏设…

为什么 Vue3 封装 Table 组件丢失 expose 方法呢?

在实际开发中&#xff0c;我们通常会将某些常见组件进行二次封装&#xff0c;以便更好地实现特定的业务需求。然而&#xff0c;在封装 Table 组件时&#xff0c;遇到一个问题&#xff1a;Table 内部暴露的方法&#xff0c;在封装之后的组件获取不到。 代码展示为&#xff1a; …

【Framework系列】UnityEditor调用外部程序详解

需求介绍 之前Framework系列有介绍过导表配置工具&#xff0c;感兴趣的小伙伴可以看一看之前的文章《【Framework系列】Excel转Json&#xff0c;配置表、导表工具介绍》。由于导表工具和Unity是两个工程&#xff0c;导表工具不在Unity工程之内&#xff0c;所以在配置生成完成之…

redis序列化数据查询

可以看到是HashMap&#xff0c;那么是序列化的数据 那么我们来获得反序列化数据 import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; import redis.clients.jedis.Jedis;public class RedisDeserializeDemo {public static…

ui->tableView升序

亮点 //设置可排序ui->tableView->setSortingEnabled(true);ui->tableView->sortByColumn(0,Qt::AscendingOrder); //排序void Widget::initTable() {//设置焦点策略:ui->tableView->setFocusPolicy(Qt::NoFocus);//显示网格线:ui->tableView->se…

Dubbo源码解析-服务导出(四)

一、服务导出 当我们在某个接口的实现类上加上DubboService后&#xff0c;就表示定义了一个Dubbo服务&#xff0c;应用启动时Dubbo只要扫描到了DubboService&#xff0c;就会解析对应的类&#xff0c;得到服务相关的配置信息&#xff0c;比如&#xff1a; 1. 服务的类型&…

NPOI 实现Excel模板导出

记录一下使用NPOI实现定制的Excel导出模板&#xff0c;已下实现需求及主要逻辑 所需Json数据 对应参数 List<PurQuoteExportDataCrInput> listData [{"ItemName": "电缆VV3*162*10","Spec": "电缆VV3*162*10","Uom":…

CVSS4与CVSS3的不同

CVSS最近出版了新的版本CVSS4.0&#xff0c;新的版本与3.1版本有什么不同吗&#xff1f; 它会带来哪些影响&#xff1f;本片文章主要目的是介绍3.1与4.0版本之间有什么不同&#xff0c;以及会带来什么变化。 再进入比较之前&#xff0c;先简单介绍一下什么是CVSS。 CVSS&…

【返璞归真】-标准化

在第一个维度数值很大、第二个维度数值很小的情况下&#xff0c;为了让聚类和回归等统计方法更有效地处理数据&#xff0c;需要对数据进行预处理&#xff0c;主要考虑以下几方面&#xff1a; 1. 数据标准化或归一化 由于两个维度的数值量级差异很大&#xff0c;直接使用这些数…

linux文件切割

切割&#xff0c;每个文件切割3.5G split -b 3358m file.tar.gz yourfile_part_ 合并 cat yourfile_part_* > test.tar.gz 比对md5sum值&#xff0c;一致

超详细:索引介绍(易懂!)

索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 索引的作用就相当于书的目录。打个比方: 我们在查字典的时候&#xff0c;如果没有目录&#xff0c;那我们就只能一页一页的去找我们需要查的那个字&#xff0c;速度很慢。如果…

智能化护士排班系统的设计与实现(文末附源码)

自动排班-护士(分白班|夜班) 当服务器启动时检测需要自动排班,自动开始排班的算法执行 获得本周的所有日期,例如2023-01-29.....2023-02-04依次对每个科室&#xff0c;从第一天开始,逐天进行排班&#xff0c;分别设置两个二个数组&#xff0c;day[7];night[7]分别记忆一周内每…

C语言指针初步(1)

本期重点&#xff1a;指针的性质、本质和作用 指针是C语言变量的一种&#xff0c;总的来说&#xff0c;它和int或者char之类的变量类型没有什么显著的区别&#xff0c;唯一的重点在于&#xff0c;指针实际上是地址。可以说指针就是地址&#xff0c;它是一个专门用于存放地址的变…

基于STM32的智能语音识别饮水机系统设计

功能描述 1、给饮水机设定称呼&#xff0c;喊出称呼&#xff0c;饮水机回答&#xff1a;我在 2、语音进行加热功能&#xff0c;说&#xff1a;请加热&#xff0c;加热片运行 3、饮水机水位检测&#xff0c;低于阈值播报“水量少&#xff0c;请换水” 4、检测饮水机水温&#xf…

Java项目:校园宿舍管理系统(优质版)(Springboot3+Maven+Mybatis Plus+Vue3+ Element Plus+Mysql)

项目介绍 : Springboot3MavenMybatis PlusVue3 Element PlusMysql 开发的前后端分离的校园宿舍管理系统 项目演示: https://www.bilibili.com/video/BV16UmoYWEVR/ 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#x…

【开源项目】数字孪生仓储~经典开源项目数字孪生智慧仓储——开源工程及源码

飞渡科技数字孪生仓储管理平台&#xff0c;基于国产数字孪生引擎平台&#xff0c;整合WMS系统&#xff0c;深度融合5G、大数据、云计算、AI、融合通信等前沿技术应用&#xff0c;将数据、技术、设备与仓储管理需求有机结合&#xff0c;构建多维立体可视窗口&#xff0c;实现仓库…

unity3d————Resources异步加载

知识点一&#xff1a;Resources异步加载是什么&#xff1f; 在Unity中&#xff0c;资源加载可以分为同步加载和异步加载两种方式。同步加载会在主线程中直接进行&#xff0c;如果加载的资源过大&#xff0c;可能会导致程序卡顿&#xff0c;因为从硬盘读取数据到内存并进行处理…

计算机毕业设计Python+CNN卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

这个 AI 懂 Vue 吗?

作者&#xff1a;前端俱乐部 写在前面 最近海外的 AI 编辑器 Cursor 好像挺火的&#xff0c;与此同时&#xff0c;字节跳动也推出了豆包MarsCode编程助手&#xff0c;可以直接生成代码和极限编程。 豆包MarsCode AI 支持网页版编辑器&#xff0c;但我个人更喜欢让它和人气爆棚…