首页 > 其他分享 >2023.9.27 LGJ Round

2023.9.27 LGJ Round

时间:2023-09-27 19:55:08浏览次数:31  
标签:LGJ 连通 le Cayley cdot sum 27 2023.9 dp

A

已知一个字符串 \(n\le 1e3\) 中的若干信息,:\((x,y,z)\) 表示 \(x\) 后缀和 \(y\) 后缀的 \(\text{LCP}=z\).
求满足条件的字典序最小的字符串。
已知 \(a_{x+i}=a_{y+i}(i<z)\),考虑维护并查集,一定相同的在一个集合。
然后要处理的是 \(a_{x+z}\neq a_{y+z}\)。从前往后填即可。

B

一个网格图满足 \(nm\le 5e4\),有若干格子不能通行。有 \(k\le 100\) 个单向的传送门。
每次询问一个点能否到达另一个点。
先缩强连通分量,然后由于 \(k\) 比较小,直接 dfs 即可。

C

\(n=1e6\),有 \(A,B\) 两个整数序列(有负数),每次给定 \(p,k\) 询问包括 \(p\) 的所有区间中 \(\max(\sum a-k\sum b)\)。
离线询问,每个询问就是找到 \(p\) 之前和 \(p\) 之后的前缀与后缀最小值减去。
发现这是一个一次函数的形式,直接李超线段树即可。

D

一棵树(\(n\le 8000\)),询问所有大小是 \(n\) 的有标号无根数中恰有 \(k\) 条边与原树相同的方案数。

Cayley公式:一个完全图有\(n^{n-2}\)棵无根生成树,经典问题prufer序列证明
扩展Cayley公式:被确定边分为大小为\(a_1,a_2,\cdots, a_m\)的连通块,则有\(n^{m-2}\prod {a_i}\)种生成树
证明就不再赘述了
那么我们可以通过 强制一条边出现或者是不出现 来统计边数
通过扩展Cayley公式统计强制的边能够得到多少树
比较Naive的想法,我们可以直接在dp中记录连通块大小、相同边数
每次断开一个连通块,乘上一个\(n\)的系数
强制相同的边,直接合并两个连通块即可
\(dp_{u,i,j}\cdot dp_{v,k,l}\rightarrow dp_{u,i+k,j+l+1}\)
强制不同的边,用不合并的-合并的即可得到
\(nk\cdot dp_{u,i,j}\cdot dp_{v,k,l}\rightarrow dp_{u,i,j+l}\)
\(-dp_{u,i,j}\cdot dp_{v,k,l}\rightarrow dp_{u,i+k,j+l}\)

优化的话首先优化连通块大小,可以通过一个经典的转化:
\(size\)作为系数,转化为在这个连通块中选出一个关键点(很显然\(size\)多大,就有多少中选出一个关键点的方案)
这样这一位被压缩到\(0,1\),只需要记录是否在这个连通块中选择了关键点
这样复杂度等同于经典树形背包问题,但是空间略紧张
可以将第3维用拉格朗日插值换掉
设答案数列为\(a_i\),转化为多项式\(A(x)=\sum_{i=0} a_ix^i\)
带入\(x_0=0,1,\cdots ,n\),求得\(A(x_0)\)的数值,然后插值得到多项式
这样第三维就合并可以直接用\(x_0^k\)换掉

标签:LGJ,连通,le,Cayley,cdot,sum,27,2023.9,dp
From: https://www.cnblogs.com/Simon-Gao/p/17734170.html

相关文章

  • 9.27(读后感2)
    今天上午去上了英语提升课下午再宿舍看了程序员修炼之道的第三章还补全了一部分出题系统的代码,再b站上看了如何用Java实现文件的存入与导出。读后感:在阅读完第三章之后,我深深地感受到了编程不仅仅是一种技术,更是一种艺术,一种哲学。这一章主要阐述了软件工艺的重要性,其中......
  • 2023/09/27
    四则运算课堂测试三 1、可定制(数量):输入大的出题数量值,测试一下系统是否崩溃,反向查找系统是否优化的余地;2、定制操作数的个数、定制是否有乘除法、定制是否有括号(随机加入)、定制数值范围(确定操作数的取值范围);3、定义方法实现错题集、错题重练并记录错题的次数功能。4、能处理......
  • 27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)
    Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink的tableap......
  • 【2023-09-27】新旧交替
    20:00不自反者,看不出一身病痛;不耐烦者,做不成一件事业。                                                 ——清·金缨《格言联璧》今天是最后一天在旧办公室上班。......
  • 27、Flink 的SQL之SELECT (Group Aggregation分组聚合、Over Aggregation Over聚合 和
    文章目录Flink系列文章一、GroupAggregation分组聚合1、count示例2、groupby的聚合示例3、distinct聚合4、GROUPINGSETS1)、ROLLUP2)、CUBE5、Having二、OverAggregation1、语法1)、ORDERBY2)、PARTITIONBY3)、RangeDefinitions4)、RANGEintervals5)、ROWintervals2、示例三、......
  • 27、Flink 的SQL之SELECT (SQL Hints 和 Joins)介绍及详细示例(2-2)
    Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink的tableapi与s......
  • 27、Flink 的SQL之SELECT (窗口聚合)介绍及详细示例(4)
    文章目录Flink系列文章一、WindowTVFAggregation1、WindowingTVFs窗口函数1)、TUMBLE滚动窗口示例2)、HOP滑动窗口示例3)、CUMULATE累积窗口示例2、GROUPINGSETS分组集介绍及示例1)、ROLLUP介绍及示例2)、CUBE介绍及示例3、SelectingGroupWindowStartandEndTimestamps4、Cas......
  • 27、Flink 的SQL之SELECT (窗口函数)介绍及详细示例(3)
    文章目录Flink系列文章一、Windowingtable-valuedfunctions(WindowingTVFs)1、TUMBLE滚动窗口1)、示例1-使用滚动窗口查询、统计(表不含主键)2)、示例2-使用滚动窗口查询、统计(表含主键)3)、官方示例-使用滚动窗口查询、统计(未验证)2、HOP滑动窗口1)、示例1-使用滑动窗口查询、统计2)......
  • 9.27
    packagecom;importjava.util.Random;publicclasstest{publicstaticvoidmain(String[]args){shortm=0,n=0,ov=0;charo='+';Randomrandom=newRandom();for(inti=0;i<50;i++){ov=(short)random.......
  • 2023-09-27
     ......