首页 > 其他分享 >10.8 模拟赛(2023 CSP-S 十连测 #5)

10.8 模拟赛(2023 CSP-S 十连测 #5)

时间:2024-10-08 20:10:57浏览次数:10  
标签:le 10.8 路径 矩阵 lca 100 CSP 十连测

炼石计划 10 月 28日 CSP-S 十连测 #5【补题】 - 比赛 - 梦熊联盟 (mna.wang)

复盘

T1 秒了。30min。

T2 题目越短越难。但是链的是经典题目,写了。小样例太水,大样例太大,不方便猜结论。于是先写暴力然后自己造样例。

模拟了五六组感觉可以按照 lca 的深度降序排序,然后能选就选。这个做法和链兼容。

但是需要维护树上路径加路径查 \(\max\)。树剖秒了。

三个做法融合起来的代码 5KB。调了 1e4514min 后树剖终于不挂了。

对拍。

T3 \(n \le 25\)??好像一分不会啊。每条边都包含 "BJMP" 感觉好做,想。

但是 \(T \le 10^9\) 什么做法都过不了。放弃。

算了先写 \(n \le 5, T \le 10\) 的爆搜吧。写一半发现加个记忆化就是个 DP,复杂度 \(\mathcal O(16nT)\),能过前两个部分分。

T4 \(n, k \le 15\) 爆搜过不去啊。好像又一分不会了。

我相信数据是很水的。于是写了爆搜加小剪枝。

预计 \(100+100+40+[0, 15] = [240,255]\),实际 \(100+100+50+15=265\)。树剖没挂就是强。

总结

好的:

  • 树链剖分没写挂。
  • 没有挂分。

不足:

知识点

  • T1:递推,矩阵加速;
  • T2:贪心,树链剖分,LCA;
  • T3:DP,矩阵加速;
  • T4:

题解

A. 男女排队

显然有递推:

f[i][0] = f[i - 1][0] + f[i - 1][2];
f[i][1] = f[i - 1][0];
f[i][2] = f[i - 1][1] + f[i - 1][3];
f[i][3] = f[i - 1][1];

矩阵加速即可。

B. 树上最多不相交路径

模拟几组样例可以发现若按照 lca 的深度,从大到小,能选就选。具体需要树剖维护树上路径加,路径求 \(\max\)。

感性理解一下为什么这样是正确的。选择一条路径后,它的 lca 的子树中的点,是不能通过 lca 走到子树外面的。所以我们按照 lca 的深度降序选。

C. 生日

首先将一条 \(u \to v\) 的边拆成两条:\(u \to v\) 和 \(u \to\) 某个虚点 \(\to v\),边权都是 \(1\)。分别表示不经过商店和经过商店。

中间这个虚点的数量可以做到 \(\mathcal O(n)\) 而不是 \(\mathcal O(m)\)。我们只需要把 \(u\) 的每条出边对应的虚点都设成 \(u' = u + n\) 即可。具体的,初始化 \(u \to u'\),每次连边 \(u \to v\) 和 \(u' \to v\) 即可。

考虑一个弱化问题:从 \(1\) 出发,不对购买的商品进行限制,在 \(T\) 秒内回到 \(1\) 的方案数是多少。

显然 DP:设 \(f(u, t)\) 表示在 \(t\) 秒时恰好到达 \(u\) 的方案数。转移 \(f(u, t) \to f(v, t + 1)\)(\((u, v) \in \mathbb E\))。答案为 \(\sum_{t \le T} f(1, T)\)。

第一维很小,第二维很大。矩阵快速幂即可。

对于原问题,我们考虑容斥。

首先求总方案数,即不对购买的商品进行限制,也就是上面的问题。这是全集。

减去某一种商品一定不购买的方案数。枚举那种商品一定不买。枚举每条边,如果这条边的商店里存在这种商品,把这条边断掉。

加上某两种商品一定不购买的方案数,容斥下去即可。

标签:le,10.8,路径,矩阵,lca,100,CSP,十连测
From: https://www.cnblogs.com/2huk/p/18452413

相关文章

  • CSP 模拟 38
    Ascoreandrank神秘贪心,如果全是正数,每当大于等于\(S\)时删除最大的最优。如果\(S\)是负数,删去所有大于等于的数就是答案。思考删除最大的为什么不对,会有这样的情况,一个负数很小,使得选择区间改变,导致维护的集合清空。这时可以选择拿正数来抵消负数。具体来说,当前\(sum\)......
  • csp-s 模拟 8
    csp-s模拟8T1scoreandrank特殊性质,题意转换妙妙题对于\(S\)小于等于\(0\)的情况答案显然是所有大于等于\(S\)的个数。现在讨论\(S\)大于\(0\)的情况。先对序列做一个前缀和,题目要求即是让所有值减去前缀最小值小于\(S\)考虑有一段连续正整数的和大于\(S\),则......
  • XYD1005CSPS
    T1传送门[最短路,二分答案]Description无向连通图,求出一个最小的\(x\),使得每两点之间存在一条路径可以划分成不超过\(k\)段路径,且每段路径长度不超过\(x\),只能从节点处切割,不能从边中间划分。\(n\le100\),无重边自环。Solution\(n\)非常小,又要考虑每两个点,自然想到全......
  • 2024.10.8 test
    nf#34A定义两个长度相等的数列相似,当且仅当每个下标对应值在两个数列中的排名相等。对于一个长\(n\)的排列,定义\(f(A,k)\)表示有多少长\(k\)的排列和\(A\)的至少一个子序列相似。排列\(A\)的值是\(\sum_{k=1}^n[f(A,k)=C_n^k]\)。给出一个排列,有若干位置待定,求值......
  • csp-s模拟10
    csp-s模拟10\(T1\)T3673.欧几里得的噩梦\(0pts\)部分分\(0\%\):状压加枚举子集。\(20\%\):线性基暴力做。正解\(T2\)T3672.清扫\(6pts\)原题:[AGC010C]Cleaning钦定根节点\(rt\)的度数\(\ge2\),所以需要特判\(n=2\)的情况。部分分未知\(pt......
  • csp-s模拟10
    rank31,垫底了,T10pts,T218pts,T30pts,T450pts状态有点不好,策略有问题,T4是可以切的,但是不知道为什么弃了。T1不会线性基寄。T3奇怪结论题,T2结论题。在猜结论上还是不行。T1欧几里得的噩梦用到了线性基线性无关的性质,将两个数连边,把环去掉,并查集判断即可。统计答案用快速......
  • Linux csplit命令
    csplit命令在Linux中用于将文件分割成多个部分,基于指定的模式或固定数量的行。与split命令不同,csplit允许更复杂的分割条件,例如基于正则表达式匹配或特定字符的出现次数。基本语法csplit[选项]文件名模式文件名:要分割的文件。模式:分割文件的依据,可以是正则表达式或数字。......
  • Day1 备战CCF-CSP练习
    Day1201403-1问题描述有$N$个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数($a$和$-a$为一对相反数)。输入格式第一行包含一个正整数$N$。$(1≤N≤500)$。第二行为$N$个用单个空格隔开的非零整数,每个数的绝对值不超过$1000$,保证这些整数各......
  • 『模拟赛』CSP-S模拟10
    Rank没学线性基输麻了,A.欧几里得的噩梦线性基,输麻了。B.清扫思维题,差点签了。(感觉其实不是很难啊,没有紫的水平)一个叶子结点和另一个叶子结点的最短路径一定经过它的父节点。根据这一性质可以让整棵树的合法性拆分成每个节点的合法性。考虑如何判断每个节点的合法性。......
  • [43] (CSP 集训) CSP-S 模拟 10
    B.清扫考虑从叶子节点往上推首先可以发现的几个性质子树内需要消除的数,要么通过子树根节点“发送”到上面(只经过子树内一个叶节点),要么通过自己的叶节点解决对于子树内既不是根也不是叶节点的节点,节点上的值只能由这一支路的叶节点消除,所以如果他节点上的值和下面节点“发......