2024.11.15 Codeforces Round 987(Div. 2)

Solved:5/6
Rank:77

比赛链接

A. Penchick and Modern Monument

给定一个不增序列,修改最少的数字使其不降。

全都修改为出现次数最多的数即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;void solve(){int n;cin>>n;vector<int> a(n);for(int& x:a)cin>>x;int ans=1,len=1;for(int i=1;i<n;++i){if(a[i]==a[i-1])++len;else len=1;ans=max(ans,len);}cout<<n-ans<<'\n';
}int main(){ios::sync_with_stdio(0);cin.tie(0);int T;cin>>T;while(T--)solve();
}

B. Penchick and Satay Sticks

给定一个排列,只能交换位置和值都相邻的数,问能否排成有序

注意到这种规则下每个数最多移动一个位置,因此如果存在 \(|a_i-i|>1\) 就直接无解。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;bool solve(){int n;cin>>n;vector<int> a(n);for(int& x:a)cin>>x,--x;for(int i=0;i<n;++i)if(abs(a[i]-i)>1)return 0;return 1;
}int main(){ios::sync_with_stdio(0);cin.tie(0);int T;cin>>T;while(T--)cout<<(solve()?"YES":"NO")<<'\n';
}

C. Penchick and BBQ Buns

给定 \(n\),构造一个正整数序列,使得出现过的数字都至少出现两次,且任意两个相同数字的距离均为平方数。

\(n\) 为偶数时,\(\{1,1,2,2,\dots,\frac n2,\frac n2\}\) 即满足条件。

\(n\) 为奇数时,必然存在一个数出现至少三次。即 \(p_2-p_1,p_3-p_2,p_3-p_1\) 同时为完全平方数。满足这个条件最小的一组数是 \(9,16,25\)。因此 \(n\leq 25\) 无解。

另一方面,\(n=27\)容易构造出 \(\{1,2,2,3,3,4,4,5,5,1,6,6,7,7,8,8,9,9,10,10,11,11,12,13,13,1,12\}\) 满足条件。

因此 \(n\geq 27\) 均有解,后面和偶数一样填数就行。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;void solve(){int n;cin>>n;if(!(n&1)){for(int i=1;i<=n/2;++i)cout<<i<<' '<<i<<' ';cout<<'\n';}else{if(n<27)cout<<"-1\n";else{cout<<"1 2 2 3 3 4 4 5 5 1 6 6 7 7 8 8 9 9 10 10 11 11 12 13 13 1 12 ";for(int i=14;i*2+1<=n;++i)cout<<i<<' '<<i<<' ';cout<<'\n';}}
}int main(){ios::sync_with_stdio(0);cin.tie(0);int T;cin>>T;while(T--)solve();
}

D. Penchick and Desert Rabbit

\(n\) 棵树,从第 \(i\) 棵树出发,每次可以跳到右边更矮的树或者左边更高的树。对所有起点,求能跳到的最高的树。

每个点的答案一定是一个前缀 max,且跳的过程会被挡住当且仅当存在某个 \(i\) 使得 \(\max_{j=1}^i a_i \leq \min_{j=i+1}^n a_n\)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;void solve(){int n;cin>>n;vector<int> a(n+1);for(int i=1;i<=n;++i)cin>>a[i];vector<int> mx(n+2),mn(n+2);mx[0]=0,mn[n+1]=1e9;for(int i=1;i<=n;++i)mx[i]=max(mx[i-1],a[i]);for(int i=n;i>=1;--i)mn[i]=min(mn[i+1],a[i]);for(int i=1,j=1;i<=n;++i){if(mx[i]<=mn[i+1]){while(j<=i)cout<<mx[i]<<' ',++j;}}cout<<'\n';
}int main(){ios::sync_with_stdio(0);cin.tie(0);int T;cin>>T;while(T--)solve();
}

E. Penchick and Chloe's Trees

给一棵树,已知这棵树由一棵完全二叉树缩点生成,求这棵完全二叉树的最小深度。

树形 dp,设 \(f_u\) 表示 \(u\) 的子树缩点前的最小深度。

假设已知 \(u\) 的全体儿子的深度。考虑贪心,每次找到深度最小的两棵子树(设为 \(d\))合并成 \(d+1\) 的子树。

这就是二进制加法的过程。即 \(f_u = \lceil\log_2(\sum_v d_{v_i})\rceil\)

暴力模拟二进制加法即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int N=1e6+5;
int n,x,f[N];
vector<int> e[N];
int t[N];
void dfs(int u){int mx=0,cnt=0;for(int v:e[u])dfs(v);vector<int> buc;for(int v:e[u]){int x=f[v];if(!t[x])++cnt;++t[x];buc.push_back(x);while(t[x]==2){t[x]=0,--cnt;if(!t[x+1])++cnt;++t[++x],buc.push_back(x);}mx=max(mx,x);}for(int x:buc)t[x]=0;f[u]=mx+(cnt>1)+(e[u].size()==1);
}void solve(){cin>>n;for(int i=1;i<=n;++i)e[i].clear(),f[i]=0;for(int i=2;i<=n;++i)cin>>x,e[x].push_back(i);dfs(1);cout<<f[1]<<'\n';
}int main(){ios::sync_with_stdio(0);cin.tie(0);int T;cin>>T;while(T--)solve();
}

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

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

相关文章

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现二

运行环境:jdk1.8、mysql5.x、idea、maven3.5/3.5 如果环境一致 运行不起来可以右侧联系我,包运行。 功能:管理员信息数据层Mapper、宠物信息数据层Mapper、宠物领养记录信息数据层Mapper、宠物评论信息数据层Mapper、宠物评论回复信息数据层Mapper、用户信息数据层Mapper 技…

Alpha冲刺(3/14)——2024.11.14

目录一、团队成员分工与进度二、成员任务问题及处理方式三、冲刺会议内容记录会议内容四、GitHub签入记录及项目运行截图GitHub签入记录五、项目开发进展及燃尽图项目开发进展燃尽图六、团队成员贡献表 一、团队成员分工与进度成员 完成的任务 完成的任务时长 剩余时间施靖杰 编…

「AI Infra 软件开源不是一个选项,而是必然」丨云边端架构和 AI Infra专场回顾@RTE2024

在人工智能和开源技术蓬勃发展的当下,AI Infra 项目正经历着日新月异的变革。从跨平台运行时到云边端 AI 基础设施,再到多模态知识助手,创新浪潮席卷而来。这些进步不仅显著提升了技术指标,也为实时音视频处理、边缘计算、大模型应用等场景开辟了新的可能性。在 RTE 2024 大…

2024-2025-1 20241305 《计算机基础与程序设计》第八周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第八周作业这个作业的目标 1、功能设计与面向对象设计 2、面向对象设计过程 3、面向对象语言三要素 4、汇编、编译、解释、执行作业正文 本博客链接教材学习…

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现一

功能点:管理员信息实体类Entity、宠物信息实体类Entity、宠物领养记录信息实体类Entity、宠物评论信息实体类Entity、宠物评论回复信息实体类Entity、用户信息实体类Entity 技术点:SSM+JSP+Mysql+Bootstrap+JS+CSS 免费学习:猿来入此一、前言介绍: 免费学习:猿来入此 1.1 …

2024-2025-1 20241320 《计算机基础与程序设计》第8周学习总结

2024-2025-1 20241320 《计算机基础与程序设计》第8周学习总结 作业信息 |这个作业属于哪个课程| https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP |这个作业要求在哪里| https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08 |这个作业的目标| 功能设计与面向对象设…

项目冲刺11.15

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第七篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

Latex 安装

使用的开发环境是 VSCode. Latex 在编译时需要用到宏包. 宏包到底是啥? 有啥作用? 从何处下载? Latex 软件的安装:texlive: 一次性下载所有的宏包. 磁盘需求较大, 约 7 ~ 8 G.miktex: 仅下载必要的宏包, 编译时补充下载宏包. 磁盘需求较小, 约几百 M.清华大学开源软件镜像站…

20222424 2024-2025-1 《网络与系统攻防技术》实验五实验报告

20222424 2024-2025-1 《网络与系统攻防技术》实验五实验报告 1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:…

Windows程序设计指南

Windows程序设计指南“到Petzold的书中找找”——仍然是解决Windows程式开发各种疑难杂症时的灵丹妙药。在第五版的《Windows程式开发设计指南》中,作者身为倍受敬重的WindowsPioneerAward(Windows开路先锋奖)得主,依据最新版本Windows作业系统,以可靠的取材资料校定这一本…

Windows高级调试

Windows高级调试中文版文档摘要: 本书《Windows高级调试》主要讲解Windows高级调试技术和工具,包括调试器简介、调试器揭密、符号文件与源文件的管理、栈内存破坏、堆内存破坏、安全、进程间通信、资源泄漏、同步、编写定制的调试扩展、64位调试、事后调试、Windows Vista基础…

iman——冲刺日志(第四天)

又一阉割版 团队成员分工与进度 📝👥组别 成员 完成的任务 完成任务所用时间 (小时) 剩余时间 (小时)前端 阿依娜孜 完成了行程概览地图中标记连线与探索功能的删除与添加。 3 2前端 郭剑敏 实现了地图标点的驾车路线绘制功能。 3 1前端 王梓铭 优化了主页与导航栏布局,提…