首页 > 其他分享 >ARC vp

ARC vp

时间:2024-06-03 09:56:16浏览次数:24  
标签:连通 vp ARC Theta rm 考虑 直接 DP

ARC165

\(\rm Performance\ 2691\),\(4\) 题。

打得比较正常,唯一缺憾是 \(\rm E\) 不会。

A - Sum equals LCM

略。

B - Sliding Window Sort 2

略。

C - Social Distance on Graph

把边排序之后直接判断当前是否是二分图,如果不是就寄了,算一下答案即可。

D - Substring Comparison

我们尽可能让限制在比较短的地方合法。

那么直接枚举合法的长度,建边之后缩点,不同 \(\rm scc\) 之间已经合法,同一个 \(\rm scc\) 内的限制则直接加入下一个长度,如果所有条件均合法直接退出。

需要注意的是每次建图要在缩点之后的图上建,不过我直接在原图上建边也过了。

E - Random Isolation

单独考虑每个连通块的贡献,发现如果这个连通块的大小 \(\ge k\) 则一定要被删一次,设 \(U\) 为连通块集合,\(P(T)\) 为连通块 \(T\) 出现的概率,则答案就是 \(\sum_{T \in U} P(T)\)。

考虑固定 \(T\) 如何计算 \(P(T)\),设 \(n\) 为 \(T\) 的大小,\(m\) 为与 \(T\) 直接相连的点个数,那么最终要形成连通块 \(T\),显然要先把 \(m\) 个点删完,并且这 \(n\) 个点必须没被删,所以概率是 \(\dfrac{n!m!}{(n+m)!}\)。

然后直接树形 DP 就行了。

F - Make Adjacent

感觉是个很套路的题。

考虑什么情况下 \(x\) 一定要在 \(y\) 前面,设 \(l_i,r_i\) 为 \(i\) 的两个出现位置,那么条件是 \(l_x<l_y\) 且 \(r_x<r_y\)。

于是直接主席树优化建图即可。

ARC162

\(\rm performance \ 2195\),\(3\) 题,打得非常唐。

不光手速很慢还四发罚时,并且 \(\rm D\) 在硬 DP,没往 \(\rm prufer\) 序列上考虑,最终搞出了一个很阴间的 \(\Theta(n^4)\) DP。

A - Ekiden Race

略。

B - Insertion Sort 2

直接插排,\(\rm NO\) 写成 \(\rm -1\) 罚了一发。

C - Mex Game on Tree

不难发现如果后手在某个点塞个 \(k\),那么这个点到根的链上的所有点都废了。

并且如果先手需要走两步,后手一定可以在先手走一步之后塞个 \(k\)。

所以先手必胜仅当一步取胜。

直接判断就行了,不知道为什么罚了三发!!!!

D - Smallest Vertices

先考虑如何计数合法树个数,直接在 \(\rm prufer\) 序列上考虑,答案显然是 \(\dfrac{(n-2)!}{\prod (d_i-1)!}\)。

然后固定 \(x\) 计数 \(x\) 对答案的贡献。

直接 DP 就行了,由于上面那个式子所以只关心一个连通块的出度之和以及点数,都加到状态里就行了。

E - Strange Constraints

具有启发意义的题。

首先题目看上去非常难做,这个“\(B_i\) 的出现次数最多为 \(A_i\)“的限制条件直接导致了按照 \(A_i\) 的顺序填与 \(B_i\) 的顺序填都无法做到多项式复杂度,因为信息难以记录。

考虑换一种顺序填,按照个数从大到小填。

为什么这样是对的呢?假设我们当前在填次数为 \(i\) 的数。那么我们需要知道:

  • 当前序列中有几个 \(j\) 满足 \(A_j \ge i\),并且值为 \(j\) 的数没被填过。
  • 当前序列中有几个 \(j\) 满足 \(A_j \ge i\),并且位置 \(j\) 上没有数。

我们发现现在的信息都是“个数”,换句话说,都是 \(\Theta(n)\) 级别的,至少能够轻松做到多项式复杂度。

如果你已经知道了填入顺序,这题自然也变成了一道基础 DP 题,直接设 \(dp_{i,x,y}\) 表示填到次数 \(i\),有 \(x\) 个值被填了,\(y\) 个位置被填了。

转移可以直接来,复杂度稍微分析一下就能发现是 \(\Theta(n^3)\) 的。

F - Montage

具有启发意义的题。

考虑将空行和空列都缩起来之后再计数。

不难发现此时每行的 \(1\) 都是一个区间并且从上到下左右端点都单调不升,而且任意两个 \(1\) 都八连通。

于是直接 DP 计算即可。

ARC179

打得同样很唐,主要原因是出题人放了 \(\rm D\) 这个答辩题,并且我不会调题。

A - Partition

赛时 \(+\) 看成 \(\times\) 了,浪费了一点时间。

只要排个序就做完了。

B - Between B and B

暴力状压。

C - Beware of Overflow

比较显然的是在题目的约束条件下若每次都取最大值和最小值那一定合法。

于是可以用线段树维护全局 \(\max\) 和 \(\min\),注意询问需要记忆化,而且细节一车(我只会想恶心做法)。

D - Portable Gate

赛后又调了 \(1h\) 才过 /oh

如果没有传送,那答案就是 \(2 \times (n-1)\)。

枚举根,然后是一个普及组 DP,设 \(dp_{x,0/1}\) 表示在点 \(x\),是否需要回到根的最大减少的遍历次数,转移直接来,能轻松做到 \(\Theta(n^2)\)。

然后换根一下就做完了,但是细节令人上头。

E - Rectangle Concatenation

感觉是好题。

用一个二元组 \((x,y)\) 表示当前遍历到 \(x\),\(x\) 的方向是竖着还是横着。

那我们考虑 \((x,0)\) 和 \((x,1)\) 是否能转移到 \((x+1,0)\) 和 \((x+1,1)\)。

比较显然的是如果 \(h_x=h_{x+1}\) 那么 \((x,0) \rightarrow (x+1,0)\),如果 \(w_x=w_{x+1}\),那么 \((x,1) \rightarrow (x+1,1)\)。

现在需要解决的问题是 \((x,y)\) 与 \((x+1,1-y)\) 之间的转移。

我们可以发现一个性质:若 \((x,y)\) 能转移到 \((x+1,1-y)\),那从 \(l\) 遍历到 \(x\) 的矩形面积是确定的,于是 \(l\) 就确定了,我们将这条转移边放到点 \(l\) 上,等到遍历到 \(l\) 时加入这条边即可。

现在我们已经可以维护出这张图了,考虑计算答案。

比较显然的是对于一个 \(l\),符合条件的 \(r\) 是一段区间,于是线段树上二分一下即可。

标签:连通,vp,ARC,Theta,rm,考虑,直接,DP
From: https://www.cnblogs.com/tx-lcy/p/18220848

相关文章

  • F1000 Research 准备研究文章
    准备研究文章  LINK  本页提供有关为F1000Research撰写研究文章的信息,包括文章中必须包含的关键部分。另请参阅F1000Research的编辑政策。此处提供了研究文章的模板。标准研究文章应呈现发现和见解的独创性,并为各自的研究领域提供理论、实证、实验和/或方法论的进步。还......
  • 城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(二)
    我们在之前的文章“城市之旅:使用LLM和Elasticsearch简化地理空间搜索(一)”,在今天的练习中,我将使用本地部署来做那里面的Jupyternotebook。安装Elasticsearch及Kibana如果你还没有安装好自己的Elasticsearch及Kibana,请参考如下的链接来进行安装:如何在Linux,Mac......
  • swiftUI使用VideoPlayer和AVPlayer播放视频
    使用VideoPlayer包播放视频:https://github.com/wxxsw/VideoPlayer提供一些可供测试的视频链接,不保证稳定可用哦:https://vfx.mtime.cn/Video/2019/06/15/mp4/190615103827358781.mp4https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4https://vfx.mtime.cn/Video/2019/......
  • URLSearchParams使用实践,URLSearchParams实现url参数字符转js对象,获取属性等功能
    constparams=newURLSearchParams();//实现js参数转urlcode编码,直接可以传到url去请求params.append('param1','value1');params.append('param2','value2');console.log(params.get('param1'))//获取到参数了consturlObject=ne......
  • [AIGC] 广度优先搜索(Breadth-First Search,BFS)详解
    广度优先搜索(Breadth-FirstSearch,简称BFS)是一种用于图或者树的搜索算法,它的特点是按照“广度”进行搜索,即在扩展搜索路线的时候,BFS会先考虑当前节点的所有邻近节点,也就是说,它逐层地进行搜索。文章目录基本原理实现方法应用场景总结基本原理广度优先搜索的基本......
  • 楚颖i2024polarctf夏季个人挑战赛WriteUp
     PolarCTF网络安全2024夏季个人挑战赛WRITEUP参赛人员:楚颖iPolarCTF网络安全个人挑战赛组委会制目录第一部分:MISC11-1祺贵人告发11-2费眼睛的flag21-5你耳机听什么5第二部分:CRYPTO72-1pici72-2翻栅栏82-3Hello9第三部分:WEB133-2审......
  • LeetCode 1305. All Elements in Two Binary Search Trees
    原题链接在这里:https://leetcode.com/problems/all-elements-in-two-binary-search-trees/description/题目:Giventwobinarysearchtrees root1 and root2,return alistcontainingalltheintegersfrombothtreessortedin ascending order.Example1:Input:......
  • Elasticsearch8.4安装及Java Api Client的使用
    目录简介一、ElasticSearch安装二、可视化界面(elasticserach-head)插件安装三、Kibana的安装四、ES核心概念五、IK分词器六、Rest风格说明:ES推荐使用的七、关于索引的操作1、PUT命令2、GET命令3、POST命令4、DELETE命令八、关于文档的操作九、整合SpringBoot,基于......
  • 使用 Vue 3 和 JsBarcode 开发一维码显示组件
    在现代前端开发中,条形码(或称一维码)在许多应用场景中非常常见,例如商品管理、物流跟踪等。本文将介绍如何使用Vue3和JsBarcode库来创建一个灵活的一维码显示组件,并展示如何在应用中使用它。1.安装必要的依赖首先,我们需要安装Vue3和JsBarcode。如果你还没有创建Vue3......
  • R语言对S&P500股票指数进行ARIMA + GARCH交易策略|附代码数据
    原文链接:http://tecdat.cn/?p=7207最近我们被客户要求撰写关于ARIMA+GARCH交易策略的研究报告,包括一些图形和统计输出。在本文中,我想向您展示如何应用S&P500股票市场指数的交易策略通过组合ARIMA和GARCH模型,从长期来看,我们可以超过“买入并持有”方法。策略概述该策略在“滚......