CF1270 Good Bye 2019

news/2024/11/6 20:33:46/文章来源:https://www.cnblogs.com/HildaHu/p/18530961

Dashboard

玩构造玩的,服了。

A

拥有最大牌的必胜。link

B

若相邻的差 \(\ge 2\) 则有解,否则根据变化连续性一定无解。link

C

加两个数,第一个数为之前所有数的异或和。加进来之后异或为 0。第二个数为加完第一个数之后的和。link

D

考虑 \(k=n-1\) 时,分别询问除去每个数之后的第 \(m\) 大。若除去的数原排名 \(\le m\) 则回答的是原排名 \(m+1\) 的数,否则是第 \(m\) 的数。所以答案就是回答的值更大的回答个数。

对于原问题,只需对前 \(k+1\) 个数做上述过程。link

E

按所有点 \(x,y\) 两维坐标奇偶性分为四组。考虑两两组别之间点距离的平方除以 \(4\) 的余数,差为 \((0,0)\) 则余 \(0\)\((0,1),(1,0)\)\(1\)\((1,1)\)\(2\)。则同一种距离的所有边连接的组别有三种情况:1. 四个点分别连自环;2. 连正方形四条边;3. 连两条对角线。当两条对角线的组别都非空时直接一条对角线为一组。否则若一条对角线的两个组别都非空则两个组别分别为一组。再否则只剩一组,则横纵坐标除以 \(2\) 递归求解。link

F

倍数相关,考虑根分。记 \(s_i\) 为前缀和,条件可以表示为 \(r-l=k(s_r-s_l)\)

\(k\le \sqrt n\),枚举 \(k\) 之后按照 \(ks_r-r=ks_l-l\) 的条件计数。

\(k>\sqrt n\)\((s_r-s_l)<\sqrt n\),枚举 \(s_r-s_l\),然后对一个右端点就有一段符合要求的左端点,算一下有多少左端点满足区间长度是 \(s_r-s_l\)\(>\sqrt n\) 倍可以了。

link

G

一个想法是在无限数轴上对每个 \(a_i\) 每个点 \(x\) 都连边 \(x\rightarrow x+a_i\),然后一种 \(a_i\) 只能走一次,如果有环就找到答案了。

然后想办法注意到 \(i-a_i\in [1,n]\)。所以只需要拉出来 \(1\sim n\),然后 \(i\) 连向 \(i-a_i\),构成基环内向树。把环找出来就行了。link

H

这就很好玩了。

想办法注意到联通块一定是连续区间。证明很简单,对于顺序对 \(i,j\)\(\forall i<k<j\)\(k\) 要么能和 \(i\) 连边要么能和 \(j\) 连边。

那么拆贡献到每个 \(i,i+1\) 是否联通。若要它们不联通,就必须没有任何一条 \([1,i]\rightarrow [i+1,n]\) 的边,也就是 \(\min[1,i]>\max[i+1,n]\)。形象化下来的答案就是从左上到右下的块数。

怎么维护这个块数:把每一块的贡献算在最大值头上。不妨添加一个 \(a_0=+\infty,a_{n+1}=-\infty\)。设最大值为 \(w\),将 \(\le w\) 的点看作 \(0\)\(>w\) 的看作 \(1\),如果 \(w\) 要成为一个块的代表元,就需要整个序列形如 \(\cdots 111000\cdots\)

对每个权值维护其 \(01\) 序列的相邻两个位置 \(01\) 不同的位置数目 \(cnt_w\)。因为两边有无穷大和无穷小,所以 \(cnt_w\ge 1\),而符合要求的 \(cnt_w=1\),为最小值,那答案就是最小值个数。

对于一对 \(a_i,a_{i+1}\),贡献是让 \([\min(a_i,a_{i+1}),\max(a_i,a_{i+1})-1]\) 区间的 \(cnt_w\)\(1\)

用线段树维护即可。link

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

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

相关文章

实验3 类和对象 基础编程

实验一 task1.cpp#include "window.hpp" #include <iostream>using std::cout; using std::cin;void test() {Window w1("new window");w1.add_button("maximize");w1.display();w1.close(); }int main() {cout << "用组合类模…

别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!

别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!前言 大家有没有遇到过,代码跑着跑着,线程突然抢资源抢疯了?其实,这都是“多线程同步”在作怪。多线程同步是个老生常谈的话题,可每次真正要处理时还是让人头疼。这篇文章,带你从头到尾掌握 Linux 的多线程同步,…

『模拟赛』NOIP2024加赛2

『模拟赛记录』NOIP2024加赛2Rank 一直烂,什么时候触底反弹(A. 新的阶乘 赛时觉得线筛一遍同时统计每个质数的指数就做完了,然后本机怎么跑不进 1s,卡常卡了半个小时,最后没 T,但是 vector 炸了,70pts。 可以换思路考虑,赛时一直没转换过来。对于每个质数枚举其倍数统计…

矩阵求导 d(A*X)/dX

矩阵求导 d(A*X)/dX简单矩阵求导 $\frac{ \part (A \times X) }{ \part X }=A$。证明如下,自行体会。 感谢 https://www.cnblogs.com/sunny99/ sumoier对本文的帮助

学习笔记(二十六):资源分类与访问(Resources)

概述: 应用开发中使用的各类资源文件,需要放入特定子目录中存储管理。 资源目录的示例如下所示, base目录、限定词目录、rawfile目录、resfile目录称为资源目录;element、media、profile称为资源组目录。resources |---base | |---element | | |---string.json | |…

java微服务的异常

1.依赖异常须知: 【 如果项目的结构是单个模块的,需要给每个单个模块添加起步依赖 spring-boot-starter-parent,指定版本 】 【 如果项目的结构是子父模块的,只需要给父模块添加起步依赖 spring-boot-starter-parent,指定版本,所有子模块引入父模块就行 】配置文件你指定…

C# WebSocket的简单使用【使用Fleck实现】

有bug,不推荐使用 有bug,不推荐使用 有bug,不推荐使用2.WebSocketHelper 新建 WebSocketHelper.csusing Fleck;namespace WebSocket {internal class WebSocketHelper{//客户端url以及其对应的Socket对象字典IDictionary<string, IWebSocketConnection> dic_Sockets =…

第三十五讲:为什么临时表可以重名?

创建临时表,一部分为了优化查询,join在临时表里查询出结果后导入到正常表中,他也支持多session的查询优化,更重要一点是在session会话关闭后,临时表会自动销毁。嗯就这样 另外分清他和内存表的区别 内存表一定是从memory引擎创建的,临时表可以由memory引擎创建第三十五讲…

如何理解shell命令 cd $(dirname $0)

如何理解shell命令 cd $(dirname $0)-CSDN博客

对C++程序使用输入输出重定向

一般来说,在Visual Studio使用文件重定向有三种方法: 方法一:通过命令行参数实现 项目→属性→配置属性→调试→命令参数然后就在这里加上你的命令行参数 比如我有这样一段程序: #include <iostream> #include <fstream> #include "Sales_item.h"int…

红米k70怎么设置「短信通知」在锁屏时隐藏内容,不锁屏时不隐藏内容

红米 K70 设置短信通知在锁屏时隐藏内容、不锁屏时不隐藏内容,可以按照以下步骤进行操作:打开手机设置:在主屏幕上找到并点击 “设置” 图标,进入手机设置页面。 进入通知与控制中心:在设置页面中,找到并点击 “通知与控制中心” 选项。 选择锁屏通知:在通知与控制中心页…

c语言中声明数组时, 元素个数必须使用常量表达式

001、[root@PC1 test]# ls test.c [root@PC1 test]# cat test.c ## 测试程序 #include <stdio.h>int main(void) {int var1 = 5; // 初始化一个变量var1int array1[var1] = {3,5,8,4,9}; // 初始化数组return 0; } [root@PC1 test]# gcc test.c …