Codeforces Round #772 (Div. 2)

news/2024/4/27 11:06:14/文章来源:https://www.cnblogs.com/AIskeleton/p/16622966.html

Codeforces Round #772 (Div. 2)

VP

A B C
3min 12min 52min
+4

排名:rk3893
基准分:\(\color{ForestGreen}{1362}\)

从天选到天崩

A

\(\color{Gray}{800}\)

CF1635A Min Or Sum

简要分析可知,其实答案就是对于所有数取或运算和(具体懒得管)

时间复杂度:\(O(n)\)

int n,x;
void work(){int ans=0;cin>>n;L(i,1,n) cin>>x,ans|=x;cout<<ans<<'\n';
}

B

\(\color{Gray}{800}\)

CF1635B Avoid Local Maximums

就是个贪心,如果能左右两个一起解决就一起干。

构造起来不难。

int n,c;
const int N=2e5+100,INF=1e9;
int a[N];bool f[N];
void work(){cin>>n;L(i,1,n) cin>>a[i];me(f,0);vector <int>p;c=0;L(i,2,n-1) if(a[i]>a[i-1]&&a[i]>a[i+1]) p.push_back(i),f[i]=1;for(int i=0;i<p.size();i++){if(p[i]==p[i+1]-2){a[p[i]+1]=max(a[p[i]],a[p[i+1]]);i++;c++;}else a[p[i]-1]=a[p[i]],c++;}cout<<c<<'\n';L(i,1,n) cout<<a[i]<<" \n"[i==n];
}

C

\(\color{ForestGreen}{1200}\)

CF1635C Differential Sorting

先想几个特殊情况:

  • 如果 \(a_n,a_{n-1}\) 之间不满足,则必然无解。
  • 如果 \(a_n<0\),则原序列必须单减,否则无解。

至于证明,可以看官方题解。
又懒得证

时间复杂度:\(O(n)\)

#define F(i) (i).first
#define S(i) (i).second
#define pb push_back
int n;
const int N=2e5+100,INF=1e9;
int a[N],sum[N];bool f[N];
vector<pair<pi,int>>ans;
void work(){cin>>n;L(i,1,n) cin>>a[i];a[n+1]=INF;if(a[n]<a[n-1]) return cout<<-1<<'\n',void();L(i,1,n) f[i]=0;ans.clear();int flag=0;int k=0;L(i,1,n-1) if(a[i]>a[i+1]) f[i]=1,flag++;if(a[n]<0){bool t=0;L(i,1,n-1)if(a[i]>a[i+1]){t=1;break;}return cout<<(t?-1:0)<<'\n',void();}if(!flag) return cout<<0<<'\n',void();L(i,1,n-2) ans.pb({{i,n-1},n});cout<<(int)ans.size()<<'\n';for(auto i:ans)cout<<F(F(i))<<' '<<S(F(i))<<' '<<S(i)<<'\n';
}

四次法师,代码巨丑。

D

\(\color{Blue}{1800}\)

CF1635D Infinite Set

在二进制下考虑问题。

对于数 \(x\)\(x \times 2 + 1\) 相当于 \(x<<1|1\)\(x \times 4\) 相当于 \(x<<2\)

尝试推导每个数的贡献值。
\(f_i\) 表示用上述方法推得能产生的 \(i\) 位数的个数。
很容易想到转移 \(f_i = \begin{cases}1&i\leqslant1\\f_{i-1}+f_{i-2}&x>1\end{cases}\)

其实就是斐波那契数列。
直接统计显然是 \(O(n)\),这个部分可以用前缀和优化到 \(O(1)\)

之后考虑可能出现的重复计算贡献的情况。
其实出现重复就是某个数会在另一个数在递推时产生。
对于这种情况,我们每循环一个数就丢进 std::set() 中,之后的数如果在拆分时的“子集”在 std::set() 中出现,跳过即可。

时间复杂度:\(O(n \log_2 A \log_2 n + p)\)

int n,p,ans;
const int N=2e5+100,mod=1e9+7;
int f[N],a[N];set<int>s;
bool check(int x){bool f=1;while(x>0){if(s.count(x)){f=0;break;}if(x&1) x>>=1;else if(x%4==0) x>>=2;else break;}return f;
}void work(){cin>>n>>p;f[0]=1;L(i,1,p) f[i]=(f[i-1]+(i>1?f[i-2]:0))%mod;L(i,1,p)(f[i]+=f[i-1])%=mod;L(i,1,n) cin>>a[i];sort(a+1,a+1+n);L(i,1,n) if(check(a[i])){s.insert(a[i]);int g=__lg(a[i])+1;if(g<=p) (ans+=f[p-g])%=mod;}cout<<ans;
}

E

\(\color{Orange}{2200}\)

CF1635E Cars

转化下题意,相当于每个限制是两车方向必须相反,且存在位置相对关系。
可以先连边,跑二分图染色,判断是否有解。

如果有解按照每辆车的朝向和已知信息建新图跑拓扑排序,分配每辆车的位置。
注意拓扑排序之后要判断车的位置是否合法,如果重叠也是无解。

时间复杂度:\(O(n+m)\)

#define L(i,j,k) for(int i=(j);i<=(k);i++)
int n,m;bool tp;
const int N=5e5+100,mod=1e9+7;
int cl[N],o[N],u[N],v[N],ans[N],in[N];
vector<int>g[N];queue<int>q;
void dfs(int u,int c){cl[u]=c;for(int v:g[u]){if(cl[v]==cl[u]){tp=1;return ;}if(!cl[v]) dfs(v,-c);}
}void top(){int tot=0;while(!q.empty()){int u=q.front();q.pop();ans[u]=++tot;for(int v:g[u]) if(!(--in[v])) q.push(v);}
}void work(){cin>>n>>m;L(i,1,m){cin>>o[i]>>u[i]>>v[i];g[u[i]].pb(v[i]);g[v[i]].pb(u[i]);}L(i,1,n) if(!cl[i]) dfs(i,1);if(tp) return cout<<"NO",0;L(i,1,n) g[i].clear();L(i,1,m)if((o[i]==2&&cl[u[i]]==-1)||(o[i]==1&&cl[u[i]]==1)) g[u[i]].pb(v[i]),in[v[i]]++;else g[v[i]].pb(u[i]),in[u[i]]++;L(i,1,n) if(!in[i]) q.push(i);top();map<int,int>mp;L(i,1,n) mp[ans[i]]++;L(i,1,n) if(mp[ans[i]]>1) return cout<<"NO",0;cout<<"YES"<<'\n';L(i,1,n) cout<<(cl[i]==1?'L':'R')<<' '<<ans[i]<<'\n';
}

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

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

相关文章

SMB登录事件排查经验分享

1. 概述1.1 案例先来看两张图: 看到这两张图的第一印象应该是这是一个成功的登陆,其类型为3,代表网络登陆,4624表示成功登陆,可能大部分人都是如此认为。 那么实际上呢?这里面是存在一定歧义的,今天给大家同步一下这里面的详细细节。1.2 原理当用户使用SMB 协议连接时,…

GET 和 POST详解

https://blog.csdn.net/qq_44204058/article/details/113984363 一、HTTP请求方法Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,…

leetcode 594. Longest Harmonious Subsequence 最长和谐子序列(简单).md

题目给我们一个数组,让我们找出最长的和谐子序列,和谐子序列就是序列中数组的最大最小差值均为1,这里只让我们求长度,而不需要返回具体的子序列。所以我们可以对数组进行排序,实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列长度了。一、题目大意 https…

2022DASCTF X SU 三月春季挑战赛 web

2022DASCTF——web1.ezpop 2.calc 3.upgdstoreezpop 给出了源码: <?phpclass crow {public $v1;public $v2;function eval() {echo new $this->v1($this->v2);}public function __invoke(){$this->v1->world();} }class fin {public $f1;public function __de…

SAAS市场不是“出身之争”,客户需求主导一切

“Salesforce中国区宣布解散”的消息,市场已经给出诸多分析和猜测。有意思的是,每当有外企中国业务受阻,市场就会有一波声音出来,认为这是外企在中国水土不服。这次也不例外,有一种观点认为外国软件不适合中国国情,未来将是中国SAAS厂商的机遇。 抛开现象看本质,抛开推测…

使用time.Time数据类型获取时间报错

报错类型:Error 1292: Incorrect datetime value: 0000-00-00 for column created_at at row 1 在添加用户到数据库时,使用的字段created_at,类型为time.Time ,无法正确的获取到当前数据点的报错记录,如下图所示: 解决方法与解决过程: 因为我这是学习别人的项目,所以拥…

今日内容之 CSS盒子模型和JS基础知识数据类型

CSS盒子模型所有的标签都可以看成是一个快递盒 1.margin(外边距):标签之间的距离 两个快递盒之间的距离 2.border(边框):标签的边框 快递盒的厚度 3.padding(内边距):内部文本与边框的距离 盒子内物…

由浇花工具开始物联网平台之开始前言篇【1】

在2020年时,突然有个想法,就是做个浇花工具,因为平时喜欢养花,有时忘记浇花,有时感觉手动浇花太麻烦,所以做个这个小玩意,是用.NET 开发的WinForm小程序,来控制单片机,带动水泵浇花,还可以测量干燥度自动浇花。现在突然又想起这事,那就由这个浇花工具开始我的物联网…

LTI系统正弦函数输入的稳态响应(Problem3.12)

这几天南方好几个省市高温大旱持续,长江流域水位下降,而北方多雨,这算是极端气候吗。一、稳态响应,涉及到的课后作业题是P3.12线性时不变系统(LTI)的稳态响应。 二、书中正文第75页三、解答过程 牢记: 1、如果你决定做某事,那就动手去做;不要受任何人、任何事的干…

[转]经典-python串口读取gps可视化 - MKT-porter - 博客园

(转载请删除括号里的内容) GPS模块设置 1使用ucenter设置gps输出 默认gps 9600 或者115200 选择串口链接 2 设置波特率 send之后重新连接gps模块,波特率修改成115200,send只是当前有效,断电恢复原来的. 3 修改GPS输出频率断电生效,保存在gps的内存里 4修改gps输出帧 默认输出…

易基因|作物育种:MdMTA介导的RNA甲基化(m6A修饰)在苹果抗逆品种选育中的作用研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 m6A是RNA上最丰富的一种修饰,平均每条转录本有1~3个m6A修饰。植物也有相应的m6A writers、readers、erasers系统。近年来,m6A修饰在植物育种领域的研究进展极为迅速。本期我们对m6A RNA甲基化在抗逆苹果品种…

VMware扩展磁盘

以下操作不会破坏原有的数据,但还是有风险的,建议先备份数据。1.关闭虚拟机,扩展磁盘2.查看当前分区大小和分配情况 df -h lsblk fdisk -l 3.扩展sda3 fdisk /dev/sda 进入fdisk模式 m 查看帮助 p 查看分区情况,记录一下sda3的start值 d 删除sda3分区,还要输入分区数(分…

[网鼎杯 2018]Comment-1|SQL注入|二次注入

1、打开之后只有一个留言页面,很自然的就想到了二次注入得问题,顺带查看了下源代码信息,并没有什么提示,显示界面如下:2、那先扫描一下目录,同时随便留言一个测试以下,但是显示需要登录,账户、密码给出了部分提示,但是最后三位密码需要爆破,结果如下:3、扫描到了.gi…

MySQL学习(3)---MySQL常用命令

ps:此随笔基于mysql 5.7.*版本。 已知root账户密码进行登录 格式:mysql [-h地址] [-p端口] -u用户名 -p密码 省略不写地址或端口则自动使用默认。(地址:localhost;端口:3306) 两种方式进行登录。方式1:方式2:忘记root账户密码进行登录(修改root密码)以管理员身份打开一个…

爬虫进阶-python爬虫爬取百度图片

爬虫进阶-python爬取百度图片​今天来和大家分享下,如何通过爬虫,爬取百度图片,并下载保存到本地。 一、开发环境 开发环境:python 3.9和sublime_text ps:pycharm今天第一次用,随着将越来越多开发环境集成到vscode上,感觉太复杂了,配置又不太懂,总是有问题,虽然很喜欢…

前端Day06

HTML5新特性 语义化: 多媒体标签: 新增input类型: 新增表单属性:

一、对象与类

已经工作几年了,java,vue,python,C++各种项目都随叫随到,但除了C++其他都没有系统的学习过。这里仅记录下从头学习java基础的过程,和我认为值得记录的一些点,权当做一个备份和文档。 学习参考书:java核心技术 卷1 第九版。家里正好有这本书很多年了,也就看这个了,不是…

Python自学教程4-数据类型学什么

Hi,我是九柄,全网同号,今天我们说说Python的数据类型。 python数据类型有什么特点 每一门编程语言都要学数据类型的,每种类型的操作会稍微有一点区别。Python是一门非常灵活的编程语言,数据类型的指定和其他编程语言会稍微有一点区别。 首先,Python 不需要显性声明数据的…

解析 RocketMQ 业务消息--“顺序消息”

本篇将继续业务消息集成的场景,从功能原理、应用案例、最佳实践以及实战等角度介绍 RocketMQ 的顺序消息功能。作者:绍舒 引言 Apache RocketMQ 诞生至今,历经十余年大规模业务稳定性打磨,服务了阿里集团内部业务以及阿里云数以万计的企业客户。作为金融级可靠的业务消息方…