首页 > 其他分享 >CSPS2022 题解

CSPS2022 题解

时间:2022-10-31 11:44:56浏览次数:69  
标签:CSPS2022 min 题解 可以 路径 枚举 权值 dp

T1

容易想到枚举 \(B,C\),然后 \(A,D\) 可以预处理,即对于 \(i\) 处理存在路径 \(1\rightarrow j\rightarrow i\) 中 \(j\) 的权值最大的,那么只需枚举 \(B,C\) 然后分别取最大的 \(A,D\)。但是因为此时最大的 \(A\) 可能与 \(C,D\) 重复,所以需要保存前三大的 \(j\) 才能保证找到最大的合法路径。接下来为了避免分类讨论,可以枚举前三大的组合,判断是否合法并更新 \(\max\) 即可。

T2

注意到两人选择的只可能是正负的 \(\max,\min\) 或是 \(0\),为了避免分讨,直接对每个数组开五个 \(ST\) 然后暴力找到这些数,然后 \(5*5\) 的枚举选的方法即可,实现比较优美,开一个 \(ST\) 的结构体,再开一个数组的结构体。

T3

删加一条边或某个点的所有入边,判断当前图是否是内向基环树森林。

只需要判断每个点的出度是否都是 \(1\),那么由于每个点的出度都是 \(1\),就有一种随机化 hash 的做法。

具体来说,每个点有一个随机权值 \(a\),每个点在当前图中的权值 \(b\) 是所有入边的点的 \(a\) 之和。那么如果所有点 \(b\) 的和等于所有点 \(a\) 的和,就有较大概率当前图满足条件。

T4

给出一棵树,一个点一次可以跳到距离小于等于 \(k\) 的所有点,一条路径权值是跳的所有点点权之和,求树上两点间路径的最小权值。

逐步递进,\(k=1\) 时,就是树上两点距离,\(k=2\) 时,注意到假如跳出了两点间的链,那么跳回来的点在跳出去之前一定可以跳到,所以不会跳出链,\(k=3\) 时,同上,不会跳出去两个点,也就是如果跳出链,只会跳到链周围一圈,而对于一个点,它周围一圈没有区别,所以可以找到一个点周围的 \(\min\) 记作 \(ex[u]\)。

那么假设把这条链找出来了,设 \(dp[u][0/1/2]\) 表示上个跳到的点与 \(u\) 的距离为 \(0/1/2\),然后你发现就可以用 \(dp[u-1]\) 更新 \(dp[u]\) 了。

  • \(dp[u][0]=\min\limits_{j=0}^k(dp[u-1][j]+a[u])\)
  • \(dp[u][1]=\min(dp[u-1][0],[k=3](dp[u-1][1]+ex[u]))\)
  • \(dp[u][2]=[k\ge2]dp[u-1][1]\)

发现是线性转移,而 \(+\) 对 \(\min\) 有分配律所以可以用矩阵优化转移,可以用倍增维护一个向上和向下的矩阵乘,也可以树剖。

标签:CSPS2022,min,题解,可以,路径,枚举,权值,dp
From: https://www.cnblogs.com/llmmkk/p/16843759.html

相关文章

  • CSPS2022 游记
    CSPS2022又寄在役期间的最后一次CSP,本来以为能留下一个辉煌的战绩,可惜寄了。Day-114514停课第一周没考试,看了一车没看过的算法,感觉良好。大家都停课之后每天晚上一......
  • CSP-S 2022 T1题解
    题目描述:在一张图中找到能够到达的四个点,使之点权之和最大。先说说考场上的思路吧,要求不超过k次转车,其实就是要求长度不超过k。所以只需要找出这张图的全源最短路,然后建......
  • 2021 ICPC EC Final B. Beautiful String 题解
    2021ICPCECFinalB.BeautifulString题解题意问给定字符串t的所有子串中形如"114514"分割方案之和。其中'1'、'4'、'5'表示某一字符串,且可重复。分析(暴力\(n^3\))......
  • acm22纳新题题解:D.喜子哥开空调
    喜子哥开空调Description喜子掌管着工作室的空调遥控器,他可以自由调整室内的温度,(这么牛?!我咋不信。。)但每个人最喜欢的室内温度不都相同,如果当前室温k与自身适应的......
  • CSP-S 2022 Unofficial 题解
    去年有个CSP-S2021Unofficial的题解但是那玩意咕掉了(主要是不想写最后一题,但是准备省选的时候会补上毕竟ZJ卷怪一堆懂得都懂),不过今年保证在NOIP2022前会写完这份题......
  • CSP2022-J组题解
    最后一次j组了,写篇题解纪念一下A假如\(a=1\),\(a^b=1\)假如\(a>1\),可以发现当\(b>30\)时\(a^b\)必然大于\(10^9\)于是我们可以暴力计算,如果计算的过程中大于\(1......
  • CF1622D. Shuffle 题解 组合数学/枚举
    题目链接:​​https://codeforces.com/problemset/problem/1622/D​​题目大意:给定一个长度为\(n\)的01字符串\(s\),你可以对这个字符串进行最多一次操作,该次操作需要选择......
  • WIN2012远程桌面授权服务器许可证问题解决方法
    WIN2012服务器报错为由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系。原因是服务器安装了远程桌面服务RemoteApp,这个是需要授权的。微......
  • P2299Mzc和体委的争夺战题解
    这是一道Dijkstra经典题目(裸题)P2299Mzc和体委的争夺战代码思路:Dijkstra+链式前向星+优先队列+结构体其实很简单的重点:if(vis[n])return;意思是找到了立即返回......
  • Python 多重继承时metaclass conflict问题解决与原理探究
    背景最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便不同模块复用大部分代码,同时强制必须实现所有抽象方法,没想按想......