首页 > 其他分享 >比赛记录(21~30)

比赛记录(21~30)

时间:2024-07-15 21:54:13浏览次数:14  
标签:连边 路径 21 30 距离 囚犯 log 01 比赛

21 2024.7.14

1 得分

题目 T1 T2 T3 T4 总分
得分 \(100\) \(10\) \(100\) \(0\) \(210\)

排名:rank \(2\)。

2 题解

T1

考虑到原先距离 \(2\) 的现在变为距离 \(1\),那么记原先两点间距离为 \(D(i,j)\),那么答案其实就是:

\[\sum_{i=1}^n\sum_{j=i+1}^n \lceil\dfrac{D(i,j)}{2}\rceil \]

那么这其实就牵扯到距离之间奇偶性的问题,考虑到还要计算距离和,采用树形 dp 的方式。考虑到还需要计算任意两点间距离,考虑以每个点为根计算一边答案,于是想到 up and down。

那么记录下四个信息:到自己距离为偶数的距离之和、到自己距离为奇数的距离之和,到自己距离为偶数的点的个数、到自己距离为奇数的点的个数。暴力树形 dp 即可。

转移方程并不难想,这里就不给了。

T2

看到异或值最大,不难想到利用 01-Trie 求解。现在问题在于前两个性质。首先简单的是第一个性质,其实质就是 \(v\le s-x\),我们在 01-Trie 上贪心求解异或最大值的时候判断一下当前数字的值是否在范围内即可。

现在考虑第二个性质,不难发现其实质就是 \(k\mid v\) 且 \(k\mid x\)。后一个条件我们特判即可,至于前一个条件,考虑对于所有的 \(k\) 建立一颗 01-Trie,上面存储 \(k\) 的所有倍数,这样我们在对应的 01-Trie 上求解即可。

如果担心爆空间还可以使用根号分治,对于 \(k\ge 300\) 的部分暴力求 \(k\) 的倍数,剩下的建 01-Trie 求解。

T3

看到要求最小油箱容量满足所有要求,想到二分答案。我们对于每一次行程都二分一次,然后取最大值即可。check 函数直接贪心即可,可以利用二分查找优化一些。

现在的复杂度是 \(O(nm\log V)\) 的,其实比较危险,我们考虑如何优化复杂度。首先,如果当前求出的最大值已经可以满足当前的行程需求就不必再二分了。也就是说,我们二分的次数其实就是前缀最大值的个数。

考虑一个结论:对于一个随机序列,前缀最大值的个数是 \(O(\log n)\) 级别的。因此我们可以使用一种骚操作:对于原先的序列进行 random_shuffle,这样前缀最大值的个数就是 \(O(\log m)\) 级别的,复杂度就降至 \(O(n\log m\log V)\),可以通过。

T4

炒鸡大码力题。

首先我们必须要知道,如果存在方案,一定是每个人按照一定的顺序从起点不停的走向终点。我们要考虑的其实就是走的顺序。

考虑两个囚犯路径会直接产生冲突的情况,发现不好直接进行判断。我们考虑反向判断必须要满足的条件,看条件之间两两是否互不冲突即可。

容易观察到如下性质:

  • 如果 \(A\) 的终点在 \(B\) 的路径上,则 \(B\) 一定要先于 \(A\) 走。
  • 如果 \(A\) 的起点在 \(B\) 的路径上,则 \(A\) 一定要先于 \(B\) 走。

现在如果 \(A\) 要先于 \(B\) 走,我们就连边 \(A\to B\);如果出现环,则一定不存在合法方案,否则一定存在。这个可以用拓扑排序简单求解。

现在的新问题是,如果暴力连边,那么复杂度是 \(O(n^2)\) 的,显然无法通过。我们考虑连边的实质,对于一个囚犯 \(i\),其路径为 \((s_i,t_i)\),则所有起点在该路径上的囚犯都要向 \(i\) 连边;同理,该囚犯 \(i\) 应该向所有终点在该路径上的囚犯连边。

容易发现条件中起点和终点的条件是分开的,我们建两棵树 \(S,T\),分别存储每个囚犯路径的起点和终点。根据上面的分析,在 \(S\) 树上路径 \((s_i,t_i)\) 的所有点要向 \(i\) 连边,\(i\) 要向 \(T\) 树上路径 \((s_i,t_i)\) 的所有点连边。为了能够转移限制条件,还需要从囚犯 \(i\) 的终点向 \(i\) 连边,\(i\) 向囚犯 \(i\) 的起点连边。

此时我们发现,连出的边在树上都是连续的一段,想到通过线段树优化建图的方式进行区间和单点之间的连边。而此时的区间是在树上的,不难想到利用树链剖分进行连边。

连完边之后就可以跑拓扑排序找环了,复杂度为 \(O(n\log^2 n)\)。剩下的就全是细节了。

3 挂分

  • T2 01-Trie 写假,\(100\to 10\)。

22 2024.7.15

1 得分

题目 T1 T2 T3 T4 总分
得分 \(100\) \(62\) \(60\) \(20\) \(242\)

排名:rank \(4\)。

2 题解

T1

我们以 < 开头举例,不难发现其行走的路径是一段左右横跳的路径,即走到左侧第一个 >,掉头走到右侧第一个 <,接着再掉头走到左侧第二个 >……。我们设右边的 < 的位置分别是 \(r_1,r_2,\cdots\),左侧 > 的位置分别是 \(l_1,l_2\cdots\)。那么行走的总距离就是:

\[\begin{aligned} &\ (i-l_1)+(r_1-l_1)+(r_1-l_2)+(r_2-l_2)+\cdots\\ =&\ 2\sum(r_i-l_i)+i \end{aligned} \]

利用前缀和求解即可。注意左右端点处理时的细节即可。

T2

通过扩欧我们知道,对于方程 \(\sum\limits_{i=1}^n a_ib_i=z\),当且仅当 \(\gcd\limits_{i=1}^n(a_i)\mid z\) 的时候有解。但是此时我们发现这个方程解出的 \(b_i\) 可能有负数,我们考虑给式子再加上一项 \(kb_{n+1}\),代表取模 \(k\) 之后的结果,那么有解的情况实际上是 \(\gcd(a_1,a_2,\cdots,a_n,d)\mid z\),而所有能生成的 \(z\) 就是前面一坨的倍数,枚举即可。

标签:连边,路径,21,30,距离,囚犯,log,01,比赛
From: https://www.cnblogs.com/dzbblog/p/18304046

相关文章

  • springboot常用注解大全(超详细, 30个)
    SpringBoot注解主要用于简化配置、自动装配组件和实现声明式服务。以下是详细的介绍:1、Springboot注解核心注解1.@SpringBootApplication作用:标注一个主程序类,表明这是一个SpringBoot应用程序的入口。功能:这是一个复合注解,组合了@Configuration、@EnableAutoConfigur......
  • Project2007-2021安装包分享:附网盘地址+安装步骤
    不得不承认,Project是从事项目管理人员最常用的软件之一,它不仅可以提高项目的效率,缩短项目开发周期,操作难度相对来说也比较小。也可以说,Project是一款专注于项目管理的桌面应用软件。它可以帮助用户制定项目计划、分派任务、管理资源、跟踪进度以及生成汇报等。MicrosoftProj......
  • 【题解】 [CSP-J 2021 T1] 分糖果
    题目描述题目大意给定正整数\(n\)、\(L\)、\(R\),求\(\max_{i\in\left[L,R\right]}{i\bmodn}\)。思路题目主要考察:分类讨论。众所周知,对于\(\forallx\),有$(x\bmodn)\in\left[0,n-1\right]$。可以分为两种情况讨论:如果\(\left\lfloor\frac{L......
  • P3304 [SDOI2013] 直径
    原题链接题解先随便找一条直径,然后标记这些边,然后看看直径上的点有没有不需要经过标记边的路径,使得其长度等于该点到直径端点的路径长度code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;structedge{llto,val;};vector<edge>G[200005];l......
  • 硬件开发笔记(二十六):AD21导入电感原理图库、封装库和3D模型
    前言  电阻,电容,电感还有各种基础的电子元器件、连接器和IC构成了各种实现功能的电子电路。  本篇介绍电感,并将贴片电感封装导入AD21,预览其三维模型。 贴片电感  贴片电感作为电子元件中的重要一员,因其小型化、高品质、高能量储存和低电阻等特性,在电子线路中发挥......
  • 全球石英振荡器行业现状、重点企业分析及项目可行性研究报告(2024-2030)
    2024年7月15日环洋市场咨询机构出版了一份详细的、综合性的调研分析报告【全球石英振荡器行业总体规模、主要厂商及IPO上市调研报告,2024-2030】。本报告研究全球石英振荡器总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析石英振荡器市场主要驱动......
  • LeetCode 1530. Number of Good Leaf Nodes Pairs
    原题链接在这里:https://leetcode.com/problems/number-of-good-leaf-nodes-pairs/description/题目:Youaregiventhe root ofabinarytreeandaninteger distance.Apairoftwodifferent leaf nodesofabinarytreeissaidtobegoodifthelengthof thesh......
  • SAP ABAP ME21N工具栏按钮失效增强
    如何使ME21N工具栏的按钮按指定条件失效发布日期:2024/07/12案例:事务码ME21N,当输入明细的工厂为3121时,使按钮【屏幕概览关闭】失效1.鼠标放在【屏幕概览关闭】上按F1,查看技术信息。确定程序名和状态栏信息。在状态栏中确认按钮ID(METROF)2.确定增强点if_command_mm~exec......
  • 组态软件(轻松让你组态效率提升30%以上)
     一、什么是组态软件组态软件是一种用于创建、配置和管理监控和控制系统的软件工具。组态是指不需要编写计算机程序、通过配置的方式完成工业应用开发的系统。它们通常用于工业自动化领域,用于实时监视和控制工业过程。组态软件提供了丰富的功能和工具,使用户能够创建用户界......
  • [CSP-S 2021] 廊桥分配
    戳我跳转题面题意一共有n个廊桥,全部分配给互相独立的两组。第一组有$m1$个区间$[l_i,r_i]$,第二组有$m2$个区间$[a_i,b_i]$(互相独立),一旦有廊桥空着,就会将$i$区间覆盖于总区间。问一共能满足多少个区间。思路45pts由于两组的处理方法几乎一样,在这里只举第一组的例......