首页 > 其他分享 > NOIP 2022 题解(个人)

NOIP 2022 题解(个人)

时间:2022-12-15 09:33:05浏览次数:33  
标签:空栈 NOIP 题解 元素 栈顶 栈底 2022 考虑 出现

\(T1\) 种花

可以维护每一个点向下最多延伸多长 \(xia_i\),向右延伸最多多长 \(you_i\),这样 C 就好求了,可以维护 \(you_i\) 一个自下而上的后缀和。

至于 F 就维护一个 \(xia_i \times you_i\) 的自下而上的后缀和,跟 C 类似。

\(T2\) 喵了个喵

先考虑 \(k=2n−2\) 时怎么做,考虑留出一个空栈,剩下的每个栈放两个不同元素,来了一个元素 \(t\),如果 \(t\) 在栈顶,那么直接消去,否则将 \(t\) 放在空栈中再消去。

接下来考虑 \(k=2n−1\) 时,首先按照上面的方法,一直到所有栈中存在 \(2n−2\) 个元素,并且此时又来了一个栈中没有的元素 \(t\),考虑有以下解决方案:

若 \(t\) 下一次出现之前,没有任何一个栈底元素出现过,那么可以放在空栈,直到再次出现直接消去。

存在一个栈,设栈底为 \(x\),栈顶为 \(y\),\(x\) 的下一次出现比y下一次出现早,这就可以把t放在这个栈最顶上,直到栈底出现并消去。

否则,现在所有栈都是先出现栈顶再出现栈底,这时把 \(t\) 放在空栈,找到一个栈底元素最先出现的栈(所以此栈底出现之前全部为栈顶元素),钦定其为新的空栈,把他的栈顶y消去之后别的 \(y\) 元素都放在 \(t\) 的那个栈里,然后其余的栈位置全部不变,直到新空栈的栈底元素出现。

在上面的情况进行时,一定不会再出现一个新的元素,因为所有的新元素都已经在栈内了。

\(T3\) 建造军营

首先跑边双缩点,最后成一棵树。

容易发现一种合法的方案在树上相当于所有选的点在一个边连通块内。

设 \(f_i\) 为以 \(i\) 为最高点的方案数。

这样的连通块有两种转移:

第一种是 \(i\) 只连接一个子树,这种情况i内部的点不能一个都不选。

第二种是 \(i\) 连接至少两个子树,这种情况i内部的点可以选择任意个。

转移时我们不考虑第一个限制,但是统计答案需要考虑。

然后再考虑边的方案,最开始无限制的时候边有 \(2m\) 种方案,然后每强制选择一条边就会失去一半的方案,所以选一条边就要把方案数除以 \(2\)。

\(T4\) 比赛

设\(A(l,r)=max(a_l,a_{l+1},⋯,a_r),B(l,r)=max(b_l,b_{l+1},⋯,b_r)\)

首先考虑线段树扫描线,设当前扫到r,线段树每个下标l,代表左端点为l的答案之和,即 \(\sum ^r_{i=l}A(l,i) \times B(l,i)\).

利用单调栈求出每个数向左能影响到哪。

然后我们发现,每次右移指针相当于给所有节点的值 \(+=X \times Y\),相当于维护历史和,这可以用矩阵来实现,对于每一个线段树节点对应一个矩阵,然后赋值 \(X\),赋值 \(Y\)。但是这个玩应常数太大了,于是我们可以直接简化矩阵乘法,维护系数即可。

标签:空栈,NOIP,题解,元素,栈顶,栈底,2022,考虑,出现
From: https://www.cnblogs.com/LuckyCat-Naitoah/p/16984287.html

相关文章

  • 2022 年度“用 TDengine,写 TDengine”征文!
    2022年即将走过,而 TDengine 在这一年的进步大家有目共睹,不仅GitHub突破了 20000 Star,全球安装实例直线上涨到了 178.1k,受到国内外开发者更广泛的关注。在产品迭代......
  • 实验七 缓冲区溢出(20221425陆宇航)
    实验原理:缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由......
  • day5-2022.12.13-flex布局初识(二)
    一、作业:继续完善昨天的布局,加入新的知识点。1、了解父级元素与子级元素。div类名为parent,包含三个类名为child。parent为父元素,child为子元素,flex布局需要给父元素......
  • Huawei Sweden Hackthon 2022 (华为瑞典2022黑客马拉松)参赛心得体验
    有幸在斯德哥尔摩的T-Centralen的WorldTradeCenter参加了HuaweiSwedenHackthon2022,即使是作为一支入围水队也收获了宝贵的经验。比赛体验是相当不错,有自助晚餐、早餐......
  • #yyds干货盘点#【愚公系列】2022年12月 微信小程序-图片加载和全屏适配问题
    前言在使用图片问题中可能会遇到各种各样的问题,比如图片加载不出来,图片显示在不同机型效果不同,图片加载展示问题等等。微信小程序image相关属性如下:属性类型默认值......
  • ZJOI2022 深搜
    链接:https://www.luogu.com.cn/problem/P8334题解:最小值期望显然可以转化为\(>=x\)的概率求和,所以我们可以考虑一个暴力,每次将\(>=x\)的点加入称为黑点,然后进行\(dp\)。那......
  • 2021-2022年游记
    \(NOI2022\)结束了,最后因为差\(34pts\)导致\(Ag\)了,下面是对初三一年的总结。\(CSP-S\)\(2021\)开场\(2.5h\)写完了前三题,想了很久\(t4\),但感觉只能网络流,但不......
  • 20221214每日学习
    leetcode题目:130被围绕的区域思路:1.遍历所有边界。2.如果遇到o,就开始bfs像外边延展,可以将这时候的o设置为e,然后再遍历所有的内部点,将e修改为o,将原生的o修改为x。题解:......
  • 2022 ICPC 杭州(待补)
    A.ModuloRuinstheLegend题解中说明:其实d只用取0或者1因为相当于对每个位置加上一个平均数也就只加了ns但是可能这个平均数可能为分数所以d取1和0即可代表所有情况......
  • 2022-2023-1 20221404《Linux内核原理与分析》缓冲区溢出实验-实验报告
    缓冲区溢出漏洞实验相关实验图片,所经历错误见结尾,建议先看结尾注意问题希望有所帮助一、实验简介缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。......