首页 > 其他分享 >NOIP2022 题解

NOIP2022 题解

时间:2023-11-15 20:14:21浏览次数:31  
标签:12 frac 题解 消掉 NOIP2022 空栈 考虑

去年今时,我得了 100 + 0 + 0 + 8 分,太抽象了 QwQ

所以为什么今天才写这个东西?因为今天才做完了 T2……

[NOIP2022] 种花

简单前缀和优化 DP,不谈。

[NOIP2022] 喵了个喵

非常高级的构造题。

看到 \(k = 2n - 1/2\),我们可能会想到每一个栈内放两个即可,留一个辅助栈,即可完美过掉 \(k = 2n - 2\) 的东西。

考虑我们如何处理多出来的那一个。

我们向后考虑,如果一个元素在栈顶有,那么可以直接消掉,但是不在栈顶存在,那么一定在栈底,所以我们必须保留一个空栈使得可以将栈底的他消掉。

设这个只在栈底的元素为 \(x\),其头上一定有一个元素 \(y\),一个简单的想法是将 \(a_i\) 压在 \(y\) 头上,自然留下了一个空栈。

但是考虑序列为 \(a_i, y, x\) 的情况,此时由于原本的 \(y\) 被 \(a_i\) 压着,所以只能将新的 \(y\) 放入空栈中,但是如此 \(x\) 就没法消掉了,这十分恼人。

但是观察到这种情况出现当且仅当 \(y\) 在 \(a_i - x\) 内的出现次数为奇数,所以我们换一个思路,将 \(a_i\) 放在空栈中,这样到 \(x\) 的时候,\(y\) 也被消完了,此时 \(x\) 所在的栈就变成了空栈。

回来考虑偶数次的情况,我们可以在这里面将 \(y\) 给消完,所以我们将 \(a_i\) 压在 \(y\) 上,每次将 \(y\) 放在 \(a_i\) 上,那么自然到 \(x\) 的时候,\(x\) 的上面就只有 \(y\) 和 \(a_i\),并且原本的空栈还是空着的,所以可以将 \(x\) 消掉,此时 \(y, a_i\) 形成一个新的两个元素的栈。

注意这里新的 \(y\) 只能压在 \(a_i\) 头上,否则可能影响到原本处于栈顶,但是被 \(y\) 压着无法消掉的情况。

按照此规则模拟即可。

[NOIP2022] 建造军营

考虑到每次只会删一条边,那么意味着军营间原图的割边一定需要被看守。

于是边双缩点,一个联通分量内的边可守可不守,变成在树上进行 DP。

计数很烦人,考虑是否能够转化为期望进行计数。

于是我们求在边 \(2^m\) 随机中合法方案数的期望。

考虑 \(f_i\) 表示 \(i\) 所在的强连通分量被选中(但是可能没有军营),初始显然是 \(2^{siz_i}\)。

考虑加入一个子树,由于其中的连边有 \(\frac 12\) 的概率断开/连上,所以 \(f_i = \frac 12 f_i + \frac 12 f_i f_y\)。

最后我们统计所有的答案,为了不重复,我们只枚举深度最浅的那个点。

由于必须与父亲的边断开,以及非空,所以需要减 \(1\),并且有一个 \(\frac 12\) 的系数:\(\sum \frac 12 (f_i - 1)\)。

但是考虑根没有父亲,所以没有 \(\frac 12\) 的系数,特判一下即可。

最后乘上 \(2^m\) 即可。

但愿不会再遇到套路,太抽象了。

[NOIP2022] 比赛

被玩烂的题 QwQ,见 # 算法学习笔记(33): 矩阵乘法与线段树标记

标签:12,frac,题解,消掉,NOIP2022,空栈,考虑
From: https://www.cnblogs.com/jeefy/p/17834650.html

相关文章

  • 【题解 P1552】 派遣
    [APIO2012]派遣题目背景在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿。题目描述在这个帮派里,有一名忍者被称之为Master。除了Master以外,每名忍者都有且仅有一个上级。为保密,同时增强忍者们的领导力,所有与他们工作相关的指令总是由上级发送给......
  • 题解 P7405 [JOI 2021 Final] 雪玉
    洛谷。题意应该好理解的。分析我们的所有雪球在同一时间之间的距离都是相同的,因此一段雪,要么是它左侧的第一个所取,要么右侧第一个所取,要么不被取,并且,我们每一个雪球所占有的雪是连续的一段。我们令\(L_i\)表示第\(i\)步前所能走的最左点,\(R_i\)表示第\(i\)步前所能走......
  • Q7.4.1.3. 产品销售 题解
    原题链接连\(S\toA_i\),流量\(D_i\),费用\(P_i\),表示最多进货\(D_i\),成本为\(P_i\)。连\(A_i\toT\),流量\(U_i\),费用\(0\),表示卖出。连\(A_i\toA_{i+1}\),流量\(+\infty\),费用\(C_i\),表示把\(A_i\)的货物拖一天花费\(C_i\)。连\(A_{i+1}\toA_i\),流量\(+\inft......
  • [题解]AT_abc267_f [ABC267F] Exactly K Steps
    大家好,我是毒瘤,喜欢用玄学算法过题。发现题解区没有这个做法,于是来发一篇。思路不难发现如果一个点对\((u,v)\)的距离为\(d\),那么在这棵树以\(u\)为根时,\(v\)的深度为\(d\)。于是考虑换根DP。首先思考如何计算答案。显然我们可以将查询离线下来,然后当换根到以\(u\)......
  • 题解 「2019五校联考-镇海1」一棵树
    题意一棵\(n\)个结点的树,根节点为\(1\),结点\(i\)的父亲是\(f_i\)。\(f_1=f_0=0\)。对于每一个整数\(i\),假如\(f_{f_i}\)不为\(0\),那么就将\(f_{f_i}\)与\(i\)连上一条边。从每一个结点,每次随机向相邻的结点走。问每个结点期望走多少步才能走到根。对于\(60\%\),\(......
  • bupt ai院第一次周赛题解
    题目一简单模拟题点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineebkemplace_back#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefvector<string>VS;typedef......
  • subject organization is not system:nodes 问题解决
    在下面的issues找到了答案:https://github.com/kubernetes/kubernetes/issues/99504┌──[[email protected]]-[~]└─$kubectlgetcsrNAMEAGESIGNERNAMEREQUESTORREQU......
  • 【课程】算法设计与分析——第八周 题解笔记
    第八周算法题解笔记1极值点题目描述给定一个单峰函数f(x)和它的定义域,求它的极值点该单峰函数f(x)保证定义域内有且只有一个极值点,且为极大值点题解本题感觉和dp关系不大,主要思路是三分法,和二分法非常类似,但没有二分法常用,主要用途是用来求单峰函数的极值对于任意一个......
  • [ARC107F] Sum of Abs 题解
    题意给定一个\(N\)个点,\(M\)条边的简单无向图,每个节点有两个值\(A_i\)和\(B_i\)。现对于每个节点,均可以选择花费\(A_i\)的代价将其删去或保留节点。若一个节点被删除,那么所有与其向连的边也会被删除。定义一个极大联通块的权值为联通块内所有节点的\(B_i\)的和的绝对......
  • 电脑网站支付报错“验签出错,建议检查签名字符串或私钥与应用公钥是否匹配”问题解决记
    在对接支付宝电脑网站支付的时候,遇到如下报错:“错误代码invalid-signature错误原因:验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配”。但展示的报错内容跟实际原因有所出入(在下文中有解答),这里记录下问题的解决排查过程。 问题复现在对接电脑网站支付时,生成......