首页 > 其他分享 >2024.8.5 test

2024.8.5 test

时间:2024-08-05 17:09:30浏览次数:17  
标签:支配 le 蓝色 2024.8 红色 test 2k Rightarrow

A

你可以花费 \(x^2\) 的代价使 \(A_i\) 加上 \(x\),\(x\ge 0\),最后再加上代价为 \(c\sum |A_i-A_{i-1}|\),问最小代价。
\(n\le 10^5\)。

我们可以把序列分成若干“山峰”以及“山谷”,山峰是不会加的。考虑从山谷开始做,即每次取出最小值。
设一开始处理 \(A_i\),发现 \(A_i\) 最多是到 \(\min(A_{i-1},A_{i+1})\),因为如果再往上,相邻的差是变大的。
我们考虑贪心的,假设 \(A_i\) 到了 \(A_i+x\),使得最优(二次函数顶点),后面也不会改变这个值。
如果 \(A_i\) 取到了 \(\min(A_{i-1},A_{i+1})\),那么合并这两个位置,因为右面这两个一定是一起走。
我们重复该过程。

B

给出 \(n\) 个集合 \(A_i\),满足 \(A_i\) 的最大值 \(<i\),\(B_i=\{i\}\cup (\cap_{k\in A_i}B_k)\)。
\(q\) 次询问,每次给出若干个 \(k\),求 \(|\cup B_k|\)。\(n\le 2e5\),\(k\) 的个数 \(\le 1e6\)。

发现这个 \(B_i\) 的定义神似支配集的定义。
下面先介绍支配树。支配的定义是对于 \(s\to v\) 的所有路径都经过 \(u\),设 \(\Rightarrow\) 表示支配,那么 \(u\Rightarrow v\)。
“支配”运算满足 \(u \Rightarrow v\),\(v \Rightarrow w\),那么 \(u\Rightarrow w\)。支配树的定义是对于 \(u\) 来说其所有祖先就是其支配集。
关于求 \(u\) 的父亲,也就是就 \(u\) 前驱的支配集的交集,因为交集是支配树上一个点到根的链的形式,
那么 \(u\) 的父亲连向 \(u\) 前驱在树上的 \(lca\) 即可。
回到原题,建出支配树,询问的话也就是路径并的大小,深度和减去 dfn 排序后相邻 lca 深度。

D

一棵树,求标号方案数,使得所有 \([i,i+k-1]\) 里的点都构成连通块。\(n\le 100\)。

对于 \(2k\le n\) 的情况,整棵树也就是两个大小为 \(k\) 的连通块由编号在 \([k+1,n-k]\) 上连续的链连接。
枚举这条链。这两个联通块有什么性质呢?显然第一棵树编号大的为编号小的父亲,第二棵反之。
外向树拓扑序计数。
对于 \(2k>n\) 的情况,这里非常麻烦,我们先确定一个大小为 \(2k-n\) 的连通块。
然后剩下两个部分,设 \([1,n-k]\) 为红色,\([k+1,n]\) 为蓝色,剩下是白色。
注意红色和蓝色都是不一定要联通的,可能是森林,只需要满足父亲的儿子的编号大小关系。
红色和蓝色通过中间的白色联通。
那么我们树形 dp,枚举根代表红树,蓝树的(虚)根,因为红树和蓝树是森林。
设 \(f_{u,c1,c2}\) 表示 \(u\) 子树内,\(c_1\) 个蓝色已确定,\(c_2\) 个红色已确定。做背包合并,类似二维 OGF。
然而这样会算重,钦定根的时候会重复计算,发现只钦定重心为根就是对的,所有情况都会被算到。
重心一定是白色,若重心是红色,就代表蓝色的点和白色的点全部位于其某个子树内。
而蓝色的点和白色的点的个数和一定超过一半,但重心下的子树大小一定不超过一半。
仅此。

标签:支配,le,蓝色,2024.8,红色,test,2k,Rightarrow
From: https://www.cnblogs.com/Simon-Gao/p/18343585

相关文章

  • 云原生周刊:Knative 1.15 版本发布|2024.8.5
    开源项目推荐helm-secretshelm-secrets是一个Helm插件,用于动态解密加密的Helm值文件。TofuControllerTofuController(以前称为WeaveTF-Controller)是Flux的一个控制器,用于以GitOps方式协调OpenTofu和Terraform资源。TracetestTracetest是一个使用OpenTelem......
  • AtCoder Beginner Contest 365(4/7)
    比赛链接:https://atcoder.jp/contests/abc365solve:ABC开头:感觉好久没打abc了,这场被D单防了qwq,该好好练练dp了A.LeapYear思路:签到题,闰年判断代码:#include<bits/stdc++.h>usingi64=longlong;voidsolve(){intn;std::cin>>n;if(n%400==0){......
  • AtCoder Beginner Contest 365
    AtCoderBeginnerContest365A-LeapYear给出年份,判断这一年有多少天闰年条件已经给出,逐条判断模拟即可。#include<iostream>usingnamespacestd;intmain(){inty;cin>>y;if(y%400==0||y%4==0&&y%100!=0)cout<<366<<endl;else......
  • 2024.8广东集训体验/感受
    2024.8广东集训体验/感受出于某些不明原因,我并不方便点名道姓这次集训所在学校是哪一所学校,因此我将称其为"最美中学".FunFact:我甚至找不到一篇较官方的文档介绍这些最美中学,真是个草台班子.写这篇文章并不想单纯的开喷,我要从好坏两个方面描述一下这所中学.首先说一下好......
  • Leetcode 3244. Shortest Distance After Road Addition Queries II
    Leetcode3244.ShortestDistanceAfterRoadAdditionQueriesII1.解题思路2.代码实现题目链接:3244.ShortestDistanceAfterRoadAdditionQueriesII1.解题思路这一题的话由于题目限制了road不会交叉,因此我们只需要在每次增加road之后将中间节点删除,剩余的路......
  • 【笔记】数论 2024.8.4
    幂数!#6222.幂数!(加强版)-Problem-LibreOJ(loj.ac)转写为\(a^2b^3\)要求\(b\)没有平方因子,这样是双射对应。那么即求\[\sum_{i=1}^{\sqrt[3]{n}}\mu^2(i)\left\lfloor\sqrt{\frac{n}{i^3}}\right\rfloor\]后面那个大根号可以整除分块?转化为求\(\mu^2(i)\)的前缀和......
  • 配置 Pytest 以跨多个项目目录查找测试
    我希望使用pytest对项目中的所有AWSLambda代码进行单元测试。由于我必须配置目录结构才能与基础设施即代码工具一起使用,每个Lambda都位于它自己的CloudFormation堆栈中,因此我有一个相当非标准的目录结构。我无法让pytest在我的所有Lambda函数中运行所有测试-理想......
  • AtCoder Beginner Contest 365
    F-TakahashionGrid用线段树上的节点维护一下\((l,r,c)\),如果\(c\)为\(-1\):\(l,r\)表示这一段区间内\([l,r]\)的交。如果\(c\ne-1\),\(l,r\)表示这一段第一次上下界相等的时候的位置为\(l\),合并后走出来的位置为\(r\),然后转折的步数为\(c\)。然后这玩意可以合并......
  • 2024.7.29至2024.8.2周总结
    本周学习任务清单DP优化:单调队列优化、矩阵优化、前缀和优化、线段树优化等ACM模拟赛图论:最小生成树、最短路、欧拉图、强连通分量、缩点、割点、双联通分量。总结本周学习任务不算太大,ACM也让我认识到了如今题目的考察范围和难度,DP优化的基础是暴力DP,我认为这一块是我的......
  • 2024.8 做题记录
    1.有依赖的背包问题普及组题现在还不会。。。太有实力辣。2.P6326Shopping题目的要求实质上是要我们选的位置构成一个连通块。可以暴力枚举根做树上依赖背包。优化的方法是点分治,计算经过当前重心的连通块,不经过的可以地柜计算。时间复杂度\(O(nm\logn)\)。3.P3780[SD......