Codeforces Round 879 (Div. 2)

news/2024/7/7 19:50:18/文章来源:https://www.cnblogs.com/HLZZPawa/p/18284780

vp的非常炸裂的一把。

A喵了

B卡住了,到最后都没做出来。
其实思路已经有了,但是我觉得是错的,就难蚌。
其实就是找第一位不一样的,后面就是0和9这样的最优的选择了。

C其实推导一下就能够发现其实BOB的操作没什么意义,直接统计两个字符串不一样的地方有几个,然后反转一下再统计,这两个取min就是答案,其中有一些部分需要特殊处理。没了。

D题,看错题了,搞得比赛的时候白写了。其实分析一下,很简单的。
首先可以发现,学了的+1和没学的-1其实和直接把学了的+2是完全等价的。
我们先假设有两个学生是我们最后的答案的两个选择,一个最高,一个最低
简单分析一下,共计三种情况,一种是这两个人的区间没有相交,一种是有相交,一种是包含。
没有相交的话,那这个答案就是这两个人里面区间长的那个人的区间长度\(\times 2\)
有相交,就是两个人里面没相交的部分的最大值\(\times 2\),要是包含的话就是大的区间减去小的区间\(\times 2\)

这个时候就可以用数据结构维护了,但是其实仔细考虑一下,完全可以更简单。
我们对每一个区间,尝试把它当作答案中大的那个区间来计算答案。那么,如果有一个区间的左边界在这个区间的右边,或者是右边界在左边,那都能够让第一种情况价值最大化。然后考虑第二种情况,也是一样的,如果存在第一种情况,那么第二种肯定是没有第一种优秀的。如果不理解,把公式写出来就看出来显然了。再是第三种情况,更是一样,这个情况对于单个区间甚至可以不统计,直接找到最长的区间和最短的区间,让答案的初值等于他们相减,很显然,这样的答案是第三种情况里面最大的,而如果这两个区间不构成第三种情况,那么第三种情况将不会是答案。

所以就有了离谱的O(n)做法

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int read(){int a=0,b=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1;for(;c>='0'&&c<='9';c=getchar())a=a*10+c-'0';return a*b;
}
int l[100001],r[100001];
int L,R,Max,Min,n,m;
int main()
{int T=read();while(T--){n=read(),m=read();L=m+1;R=0;Max=0;Min=m+1;for(int i=1;i<=n;i++){l[i]=read(),r[i]=read();L=min(L,r[i]);R=max(R,l[i]);Max=max(Max,abs(r[i]-l[i]+1));Min=min(Min,abs(r[i]-l[i]+1));}int ans=Max-Min;for(int i=1;i<=n;i++){if(l[i]<=L&&r[i]>=R)ans=max(ans,max(r[i]-L,R-l[i]));else ans=max(ans,r[i]-l[i]+1);}cout<<ans*2<<endl;}return 0;
}
 

这个E题,哎

今年昆明邀请赛里面有一题和这个非常像,用的是同一个结论。
就是gcd或者是lcm的数量。
首先,对于一个不断长变长的区间,lcm只能是单调递增的。
而你的lcm,每次增加,都必定是在前面的基础上\(\times 2\),或者是一个更大的数字。这也就意味着,你的lcm的种类,最多只有\(log_2(max)\)个,而这里,这个max可以是很大。\(1e9\)都无所谓。那也就是说,你对每个位置,以它为起始位置,往后枚举它的所有的以这个点为起始位置的区间的lcm,是可行的。
具体操作,就是把所有不同位置开始的lcm全部放到set中,这个set最大只有\(log_2 (max)\),每次我们就把这里面的全部取出,然后计算每个数字和\(a[i]\)的lcm,再放回去。然后把超出\(max\)的lcm不要。统计到最后,找到最小的没有遇到过的数字,就是答案。用stl写起来巨快。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int read(){int a=0,b=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1;for(;c>='0'&&c<='9';c=getchar())a=a*10+c-'0';return a*b;
}
inline int gcd(int a,int b)
{if(b==0)return a;return gcd(b,a%b);
}
inline int lcm(int a,int b)
{return 1LL*a*b/gcd(a,b);
}
int n,a[300001];
set<int> s,vis;
int main()
{int T=read();while(T--){n=read();for(int i=1;i<=n;i++){a[i]=read();}s.clear();vis.clear();s.insert(a[1]);vis.insert(a[1]);for(int i=2;i<=n;i++){set<int> tmp;tmp.insert(a[i]);for(int x:s){int ned=lcm(x,a[i]);tmp.insert(ned);}s=tmp;while(s.size()&&(*(--s.end()))>=1e9)s.erase(*(--s.end()));for(int x:s)vis.insert(x);}int ans=1;while(vis.count(ans)!=0)ans++;cout<<ans<<endl;}return 0;
}
 

哎,这一场的B,是真的。。。
D其实很简单,差点就出来了。很可惜。
想想怎么想才能做出来?
B其实正解我确实想到了,但是我当时的脑子太乱。。。想不清楚了,也是对于进制的理解还是太狭隘了吧,当时在想上一位虽然不一样了,也不代表下一位可以任意选,其实差的是那个一个全9一个全0 的部分,那确实是差了些。

D的话,看错题了,看对了题目我估计也花大时间写数据结构了。ea的做法确实是太优越了,这个是这个贪心确实是降维打击了。太强了,我完全弄懂策略的时候如果再进一步想一想也许能想到。

E,其实就是那个gcd和lcm的结论。没什么,学到了就好了。

加训。

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

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

相关文章

基于centos8使用seafile搭建家用nas

本文详细总结了在CentOS 8下使用Seafile搭建家用NAS的全过程,涵盖了虚拟机的建立、MariaDB和Seafile的安装、防火墙端口配置、数据盘RAID1的创建、Seafile数据目录的迁移、用户管理、开机自启动设置以及静态IP地址的配置等内容,旨在为初学者提供一个完整的指南。目录 前言:1…

在Ubantu22.04中运行ORB_SLAM3并进行源码解析

在Ubantu22.04中运行ORB_SLAM3并进行源码解析 1.ORB_slam3简介 ORB-SLAM3 是一款前沿的即时定位与建图(SLAM)系统,专为大规模环境下的实时定位与三维重建设计。系统兼容多种视觉传感器配置,包括单目、立体双目以及RGB-D相机。ORB-SLAM3 采用 Oriented FAST 和 Rotated BRIE…

Joplin主题样式及markdown渲染样式更改

本文详细介绍了如何在Joplin笔记软件中更改主题样式和Markdown渲染样式,提供了具体的操作步骤和代码示例,帮助用户自定义Joplin的外观,使其更加美观和符合个人喜好。前言 Joplin是一款极佳的笔记软件,拥有开源、免费、可自定义程度高等多种优点,但其默认的软件主题和Markd…

模拟集成电路设计系列博客——9.2 电平转换器

模拟集成电路设计 9.2 电平转换器 电平转换器是集成电路设计中的一个重要部分,常用于芯片多电压域低功耗设计和I/O中。我们知道在集成电路中,I/O电压与Core电压常常处于两个不同的电压域,因此我们需要使用电平转换器(level shifter)来将I/O电压降低到Core电压,或者将Core…

泛语言计划 第二弹 函数

开始之前,我们先复习一下数学中是怎么定义函数的。 数集A和B,如果A所有数在B中都存在且只有一个数与之对应,则称B是A的函数 由此,我们可以看出一个关键词:对应。 编程中的函数也一样,只是编程中不一定是数,也可以是布尔值、字符串,甚至操作。 这个A集,我们叫他参数,B…

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署)

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署) 简介 OpenEBS 是一种开源云原生存储解决方案。OpenEBS 可以将 Kubernetes 工作节点可用的任何存储转化为本地或复制的 Kubernetes 持久卷。OpenEBS 帮助应用和平台团队轻松地部署需要快速、持久耐用、可靠且…

想要流程化办公,不妨了解拖拽式报表设计器!

看看拖拽式报表设计器是如何为客户降低成本、提高效率,携手进入产业分工新时代。当前,经济发展越来越快,经济水平提升的同时也给职场人提成了更高的要求。很多领域的客户都希望能实现降本、提质、增效,进入流程化办公新时代,可以先来了解低代码技术平台、拖拽式报表设计器…

代码随想录算法训练营第四十九天 | 300.最长递增子序列 674.最长连续递增序列 718.最长重复子数组

300.最长递增子序列 题目链接 文章讲解 视频讲解动规五部曲:dp[i]: 表示考虑元素i的最长子序列为dp[i] 递推公式:dp[i] = max(dp[j] + 1, dp[i]); 初始化:dp[i] = 1; 每个元素单独算一个子序列长度为1 遍历顺序:从前向后遍历 打印dp数组class Solution { public:int length…

基于LEACH路由协议的网络性能matlab仿真,包括数据量,能耗,存活节点

1.程序功能描述LEACH的原理在于它将传感器节点分为两类:簇头节点和普通节点。普通节点将数据发送给距离自己最近的簇头节点,然后簇头节点将收集到的数据融合后发送给基站。这种机制可以减少网络中节点的能耗,并且能够提高数据融合比例,减少传输数据量。本课题将分别对比lea…

高二的他已通过NOI保送北大了,让我们一起了解他的信息学奥赛学习经历吧!!!

相信关注本号的各位,对于信息学奥赛已经不陌生了,部分同学也已经开始踏入信息学的旅程,但前路茫茫,让我相信关注本号的各位,对于信息学奥赛已经不陌生了,部分同学也已经开始踏入信息学的旅程,但前路茫茫,让我们一起看看已经取得成就的同学的经历吧。今天要介绍的这位同…

VPS折腾记七搭建稍后阅读应用

1.简介 看微信公众号的时候,文章太长,可以收藏起来,但是等到晚上看的时候,发现作者已经删除了,很遗憾。wallabag能够收藏文章并且保存到服务器,让我们可以稍后阅读,而且也不怕文章丢失。 wallabag is a self hostable application for saving web pages: Save and class…

基于PSO粒子群优化的CNN-LSTM的时间序列回归预测matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 matlab2022a3.部分核心程序for i=1:Iterifor j=1:Npeoprng(i+j)if func_obj(x1(j,:))<pbest1(j)p1(j,:) = x1(j,:);%变量pbest1(j) = func_obj(x1(j,:));endif pbest1(j)<gbest1g1 = p1(j,:);%变量gbest1 = pbest1(j);end…

关于领域驱动设计,大家都理解错了

翻遍整个互联网,我发现,关于领域驱动设计,大家都**理解错了**。 今天,我们尝试通过一篇文章的篇幅,给大家展示一个完全不同的视角,把“领域驱动设计”这六个字解释清楚。 ## 领域驱动设计学习资料现状领域驱动设计的概念提出已经有20年的时间了,整个互联网充斥着大量书籍…

7.4日BootlLoad总结

最近在研究单片机远程升级方法,看了网上许多资料后了解到,远程升级就是用IAP方法去烧写flash区,而IAP方法在EEPROM中有用到,也就是所说的掉电记忆,掉电不丢失的情况,而相较于51单片机,网上的资料大多是有关STM32单片机的,且使用操作系统,适合于芯片内存较大的芯片,分…

(一):小程序与服务器的链接

首原文写于18年5月,因不再想继续使用C站,现将主要文件迁移至博客园。文中涉及技术部分已相对过时,但依旧对初始web的小朋友具有一定参考价值,权且玩乐。 环境IDE:myeclipse,服务器容器Tomcat,服务端主要用servlet。创建servlet小程序与服务器链接(前端和后端的交互)的…

可视化数据看板/数字孪生大屏到底有没有实际价值?详解数据可视化的实用价值

数据驾驶舱/数据看板/可视化大屏的实际价值,取决于使用者的实际需求。华而不实?华就是实! 关于可视化大屏最广泛的争议,便是对其“华而不实”的批评,认为可视化大屏缺乏技术含量,只是一钟比较高级的“装饰品”,更是一种典型的“面子工程”。这种偏见乍一看似乎有其道理,…

osg使用整理(12):SSAO屏幕空间环境光遮蔽

一、基础概念 1、SSAO:通过将褶皱、孔洞和非常靠近墙面变暗的方法,近似模拟间接光照。SSAO称为屏幕空间环境光遮蔽 ,使用屏幕空间场景的深度而不是真实的几何体数据来确定遮蔽量,速度快效果好。2、实现原理:根据物体表面法线方向生成一个半球随机深度采样,主要看物体周围…

比赛获奖的武林秘籍:01 如何看待当代大学生竞赛中“卷”“祖传老项目”“找关系”的现象?

本文主要分析了大学生电子计算机类比赛中“卷”“祖传老项目”“找关系”的现象,结合自身实践经验,给出了相应的解决方案。比赛获奖的武林秘籍:01 如何看待当代大学生竞赛中“卷”“祖传老项目”“找关系”的现象? 正文 目前现状 对于大部分的比赛小白来说,对当前比赛的现…

2024.7.4 鲜花

今日推歌 natural Will you hold the line. 只有你还没有放弃。 When every one of them is giving up or giving in, tell me. 当其他所有人都停止了尝试,被挫折磨尽了希望。 In this house of mine,Nothing ever comes without a consequence or cost, tell me. 我所在之处,…

【python+selenium的web自动化】—— 控制浏览器

前言: 需本教程以Edge做测试,且谷歌、火狐等浏览器的逻辑都一样需要使用 selenium 模块操作 Edge 浏览器。 一、先通过pip install 模块 把selenium模块安装了,可以加一个中国源提升速度。pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple二、需要下载Edg…