首页 > 其他分享 >2024.2 做题记录

2024.2 做题记录

时间:2024-02-21 23:22:15浏览次数:35  
标签:2024.2 点双 记录 圆点 路径 方点 相邻 圆方树

省流:因为一月底回厦门玩然后又回泉州过年,直到 2.17 才开始做题。

[APIO2018] 铁人两项

圆方树和后缀数组我都想开个贴单独写。考虑关于“简单路径”,在点双上都有很特殊的性质。考虑把原图的圆方树建出来,然后考虑简单路径和圆方树的关系。

注意到,在同一点双的两点的简单路径的并集,恰好为整个点双,也就是说,对于两圆点在树上的路径中方点的相邻原点的并集也就是两点间所有简单路径经过点的并集。

枚举起点终点 \(s, f\),合法中间点 \(c\) 的数量为并集 \(-2\)(去掉起点和终点)。那么计算答案就好计算了,我们给方点赋值为相邻圆点数量,圆点赋值为 \(-1\),问题转化为两点路径权值和。

为什么这样是对的?
按照刚刚的赋值方式,我们在经过一个点双时会正好把点双的大小 \(-2\) 算进去,\(-1+sz_u-1\)。但是因为在圆方树中任意圆点相邻的都是方点,而又因为是路径,所以一个圆点又会被两个方点贡献,那么贡献又回到了 \(1\)。
但是起点和终点不会被两个方点相邻,所以它们的贡献也确实就是 \(-1\),那么总的贡献就正确了。

现在复杂度是 \(O(n^2)\),怎么办?

转化思路,我们统计每个点的贡献,这是好做的,dp 就是一个乘法原理,注意只能统计圆点的贡献方案。

Tourists

套路的变成圆方树,那么也可以把所有相邻原点的权取 \(\min\) 挂到方点上,直接查询路径最小值即可。

考虑修改,这样做要把该圆点所有相邻的方点做出修改,于是我们对于每个方点改为只记录其儿子的贡献,这样用树剖和线段树就可以维护了,同时对于每个方点维护一个 multiset。维护指定值删除和最小值。

https://www.luogu.com.cn/discuss/780218

Count on a tree

不太难。因为主席树天生是一个支持前缀和的东西,所以我们直接像记录树上前缀和一样,把链从上至下当作是序列,然后对于主席树上也有的差分,有

\[s_u + s_v - s_{lca(u, v)} - s_{fa_{lca(u, v)}} \]

作为查询版本,之后直接主席树二分即可。我倒是觉得这个式子没什么好解释的。

压力

这题太纯了,直接秒了,做也是一遍过。因为一个点能成为割点一定是“所有简单路径必须经过的点”,也跟圆方树很有关系,于是考虑建出原图的圆方树。不难发现,一条路径上涉及到的所有的圆点都是必须经过的,直接树上差分即可。

我确实觉得这是个很直觉的东西,不过我还是应该感性写一下理解。
如果我们经过某个方点控制的圆点,然后走出了这个点双,也就是说下一步的点就不属于当前点双了(如果有多条路径当前点双就不是极大点双),那也就是说这是唯一路径,也就是说这是割点。
证毕。

[JSOI2007] 字符加密

最秒的一集,首先断环成链肯定是有必要的,然后发现直接后缀数组就是题目里要的东西,就通关了。

[SDOI2016] 生成魔咒

待续,睡觉了。

标签:2024.2,点双,记录,圆点,路径,方点,相邻,圆方树
From: https://www.cnblogs.com/Rainsheep/p/18026415

相关文章

  • 2024.2.21游记
    首先,文对于线段\([A,B]\),\([C,D]\)什么时候相交。\(B\)为\(A\)的祖先,\(D\)为\(C\)的祖先相交有一种情况,在\([A,B]\)上有一个分叉,连接\(C\),然后分叉上面为\(D\),这是候,就会发现\(B\)是\(C\)的祖先,\(D\)是\(A\)的祖先代码形式LCA(B,......
  • ssts-hospital-web-master项目实战记录六:项目迁移方案大纲(html -> vue)
    记录时间:2024-02-21(一)公共资源部分Inc/cssInc/flashInc/imagesInc/jsInc/voice(二)页面部分1.主页及其组成(1)index.html->App.vue(2)MainPage*.html->views/main-page*MainPage1.html->views/main-page1MainPage2.html->views/main-page2MainPage3.html->......
  • Solution Set【2024.2.21】
    [ARC162C]MexGameonTree可以发现若Bob在某个节点填了值\(K\),那么会直接导致其根链上的所有节点均不可能满足要求。因此若某个节点的子树内有不小于两个空位,那么Alice一定无法使该子树满足要求。若某节点子树内有一个空位且可以通过填上这一空位使其合法,那么Alice可......
  • 关于jenkins配置的一些记录
    1、jenkins的一些参数配置配置文件所在的位置:[root@]#vim/usr/lib/systemd/system/jenkins.service[root@]#vim/etc/init.d/jenkins/etc/init.d/ 中包含许多系统服务的启动和停止脚本,可以用./jenkins start这个命令来启动jenkins。service文件是使用systemd作为初始......
  • [转帖]nginx利用request_body记录POST body(location中用proxy_pass)
    https://www.cnblogs.com/freedom-try/p/14699538.html1.完整过程1.1在nginx.conf中http里面添加配置如下:http{ ... log_formatpostdataescape=json'$remote_addr-$remote_user[$time_local]"$request" '$status$bod......
  • 记录一次如何给openai (chatgpt api 调用)充值的经历
    网上有很多通过支付宝充值apple礼品卡的教程,能成功充值chatgpt-plus,我也成功充值了。但这个账号不能在自己的服务中调用api,需要额外充值,本次是记录如何给openaiapi 接口调用充值https://platform.openai.com/account/billing/payment-methods  用fomepay成功充值的经历......
  • ssts-hospital-web-master项目实战记录五:集成第三方库
    1.Vue-Router的集成在Vue.js+TypeScript项目中集成Vue-Router,具体的步骤如下。第一步:新建页面组件在src/views目录下分别新建main/main.vue、login/login.vue、not-found/not-found.vue三个页面组件。main.vue组件代表首页,代码如下所示:<scriptsetuplang="ts"></script>......
  • 记录conda安装gdal问题
    使用conda安装gdal过程中遇到了很多坑,在此记录一下,首先gdal使用时会调用其它很多三方包,为了彼此之间不相互影响,我先创建了新的虚拟环境,在新的虚拟环境中安装gdal。1、离线安装网上看到好多建议离线安装的,因此首先找了一下离线包,很多旧的链接已经失效了,我在https://github.com/cg......
  • 2024.2.21 LGJ Round
    A你在平面上有\(n\)个点,你每次可以从一个点跳到其右下或左上任意的点,|对每个点\(i\),求所有点到\(i\)至少跳多少次的和。点的坐标值域为\(M=2500\)。\(n\le2.5e5\).我们先考虑某个点,到所有点跳多少次。首先右下,左上都是跳一次即可。我们先考虑右上的点怎么办。我们一定......
  • ssts-hospital-web-master项目实战记录四:主要配置
    记录时间:2024-02-211.配置浏览器自动打开配置文件:package.json "scripts":{  "dev":"vite--open" } 2.配置src别名(1)安装@types/node输入npm命令npm i@types/node--save-dev(2)配置文件:vite.config.tsimport{defineConfig}from'vite&#......