首页 > 其他分享 >赛前集训11天题解大总

赛前集训11天题解大总

时间:2023-11-16 17:12:57浏览次数:29  
标签:11 结尾 cdot 题解 sum dp 贡献 赛前 leqslant

Day 1

kitty

核心思路:将转移过程中的方案加入转移矩阵,边转移边累加

string

dp设计:\(f[i][x][y]\) 表示长度为 \(i\),第一段以 \(x\) 结尾,且 \(x\leqslant p\),第二段以 \(p\) 开头,以 \(y\) 结尾的两段完全相同的序列的对数。

对于每个 \(p\) 答案就是 \(\sum_{i=1}^{n}i\cdot f[i][x][y]\times 2^{max(0,p-x-1)}\)。

加个前缀和优化可以做到 \(O(n^4)\)。

优化:\(i\) 这维在转移的时候并没有用到,可以考虑将这维优化掉。设 \(g[x][y]\) 表示第一段以 \(x\) 结尾,且 \(x\leqslant p\),第二段以 \(p\) 开头,以 \(y\) 结尾的两段完全相同的序列的长度和。

那么当 \(s_x=s_y\) 时,就有转移:

\[f[x][y]=\sum_{i<x}\sum_{j<y}f[i][j] \]

\[g[x][y]=\sum_{i<x}\sum_{j<y}g[i][j]+f[i][j] \]

容易进行 二维前缀和优化,时间复杂度为 \(O(n^3)\)

contact

类似 \(Kruskal\)

Day 2

decimal

注意到除法的借位类似于取模后 \(\times 10\)。

所以这道题可以考虑通过 \(\times 10\) 取模快速到达小数点后第 \(L\) 位,然后暴力求即可。

labor

二分区间长度,然后求区间内逆序对个数即可。

具体的,对于长度为 \(len\) 的区间,先删去 \(i-len\) 的贡献,然后再加入 \(i\) 的贡献。

这个过程用树状数组维护即可。

distance

考虑当节点存在一个 子树大小 \(>n/2\) 时,那么它必定不是优秀的。因为可以通过移动这个点,使 \(\sum_{1\leqslant v\leqslant n,v\not=u}dis(u,v)\) 更小。

综上得到第一个性质:这个点必须是重心

对于一个点 \(u\),要使它成为重心,需要让它的每个子树的大小都 \(\leqslant n/2\)。

到这里就可以直接考虑暴力的 换根dp,不过还可以继续对题目进行挖掘。

发现只有 \(rt\)(重心) 对应的 \(u\) 的子树个数是 \(>n/2\) 的,直接分类讨论即可。

worship

简述一下题意:求 \(1\sim n\) 所有排列产生的贡献的和,每个排列的贡献是 \(\prod_{i=1}^{n-1}dep[lca(p_i,p_{i+1})]\)。

观察式子发现,产生的贡献实质上是连续段合并产生的,也就是说可以直接考虑连续段dp。

对于 \(u,v,w\) 三个点,\(u\) 为 \(v,w\) 的祖先,\(v,w\)分别在 \(u\) 的两个子树里,产生贡献的情况只有:

\[\_\_uv\_\_w \]

\[\_\_u\_\_vw \]

\[\_\_uvw\_\_ \]

这三种情况。设状态为 \(f[u][i]\),表示 \(u\) 的子树中,有 \(i\) 个连续段的答案,\(g[k][i][j]\) 表示将 \(i,j\) 个连续段合成 \(k\) 个连续段的方案数。

\[f[u][k]=f[v][i]\cdot f[w][j]\cdot g[k][i][j]\cdot dep[u]^{i+j-k} \]

标签:11,结尾,cdot,题解,sum,dp,贡献,赛前,leqslant
From: https://www.cnblogs.com/ATOM-/p/17836555.html

相关文章

  • 20231116
    今天是个大晴天,18摄氏度,不知道为什么一堆人穿冬季校服。看来还是说明体锻太少了,大家都虚了。哦,上文和下文没有关系。下文是昨天总结出来的,也是也不是,是上高中后总结出来的。形式主义其实是一群傻逼满脑子都是他们认为的理想化,我觉得这种人脑子相当于是被格式化了。也是,生活中接......
  • 2023.11.16
    A给出两个点\(A\),\(B\)和\(n\)个圆,此外还有一个未知的圆\(O\)过\(A,B\)且不与任意圆相交。问\(O\)的最小可能半径。\(1\len\le10^5\),点和半径值域\([-10^5,10^5]\)。答案不超过\(10^{12}\),要求相对或绝对误差\(\le10^{-3}\)。二分一眼假但是放了\(80\)分。......
  • 11 16 更新用户密码
     @PatchMapping注解是因为接口文档的请求方式是patch,参数声明了map集合对象,@RequestBody是把json数据转化为map对象controller层:service层:  mapper层: 新增文章分类:下面分别是controller,service,mapper: 接口文档要求两个参数均非空,所以对实体参数进行校验:......
  • 2023.11.16日报
    今日猛肝,把大数据的实验做完了八个八个!!!无需多言附图为证 然后就是做完这个就要开始看ERP了今天先这样了学习时间已经不记得几个小时了反正不少于三小时......
  • 2023/11/16 NOIP 模拟赛
    T1基于1的算术标签暴力枚举思路1赛时想了个假的DP,只拿了77分,,,小于\(10^{15}\)的仅由\(1\)组成的数只有\(15\)个,直接枚举即可。想了一个做法,就是直接枚举第\(i\)位作为最高位的\(1\)串取了几个,分解每位,设从高到低\(i\)位为\(a_i\),\(a_i-3\sima_i+3\)全......
  • 题解:Feel Good
    题目链接依然枚举每个位置作为最小值的情况,记录“值/下标”二元组,按第一维从大到小排序后,每次将第二位的位置在序列中标成\(1\),那么选择的一定是序列里一个\(1\)的极长段。加入一个位置检查其左右是否加入过,如果加入过就用并查集合并掉,同时维护极长段的和/左右端点是简单的,复......
  • 文心一言 VS 讯飞星火 VS chatgpt (136)-- 算法导论11.3 2题
    二、用go语言,假设将一个长度为r的字符串散列到m个槽中,并将其视为一个以128为基数的数,要求应用除法散列法。我们可以很容易地把数m表示为一个32位的机器字,但对长度为r的字符串,由于它被当做以128为基数的数来处理,就要占用若干个机器字。假设应用除法散列法来计算一个字符串......
  • 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)
    [NOIP2014普及组]珠心算测验题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合......
  • 阿里云11月12日官方故障报告来了
    影响范围OSS、OTS、SLS、MNS等产品的部分服务受到影响,大部分产品如ECS、RDS、网络等运行不受影响。云产品控制台、管控API等功能受到影响。时间2023年11月12日17:39~19.20,故障时间为1小时41分。问题概况2023年11月12日17:39起,阿里云云产品控制台访问及管控A......
  • 1116打卡
    1.柱状图中最大的矩形(84)给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。classSolution{publicintlargestRectangleArea(int[]heights){intlen=heights.length;if......