机房在三楼, 不在五楼.

  三楼确实有阶梯教室.

  三楼向外望是一楼大厅屋顶所以看上去不高.

  十一点前必须离开科技楼是因为爱因斯坦要锁大门.

  我不会被自己写的东西清空 san 值.

  我是兔子.


  Contest link.

\(\mathscr{A}\sim\) 折线

  Tag:「水题无 tag」

  显然答案 \(\ge2\). 若能横向或纵向把点集恰好一刀切成两半, 则答案为 \(2\); 否则若能找到一个右下角或左上角的矩形恰好覆盖点集一半, 则答案为 \(3\); 否则不难构造出 \(4\). 判 \(3\) 可以扫描线 + 数据结构二分或者单调指针维护. 复杂度 \(\mathcal O(n\log n)\), 瓶颈可以做到只有排序.

\(\mathscr{B}\sim\) 冒泡排序

  Tags:「A.DP-计数 DP」「C.性质/结论」

  不妨令 \(f(p)\gets n-f(p)\).

  排列没啥好说的. 对于圆排列, 第一个任务自然是描述给定圆排列 \(p\) 的最小操作次数 \(f(p)\).

  我们知道, 排列上, \(f(p)\) 为 \(p\) 的从 \(p_1\) 开始的最长贪心上升子序列 (LGIS) 长度. 结合这一点, 同时观察样例解释, 我敢打赌, 圆排列上 \(f(p)\) 为 \(\forall i\in[1,n]\), 从 \(p_i\) 开始的 LGIS 长度的最小值. 证明不难.

  呜... 但这个结论并不能转化出方便的计数情景. 再注意到, LGIS 的最后一项必然是 \(n\), 所以直接把 \(n\) 钦定在 \(p_n\), 固定圆排列的同时直接破环为链. 链上问题就好做了, 令 \(f(i,j)\) 表示用 \(i\) 个数排出任意 LGIS \(\le j\) 的方案数. 枚举 \(i\) 个数中最大值的出现位置即可转移. 复杂度 \(\mathcal O(n^3)\).

\(\mathscr{C}\sim\) 动态图连通性 *

  Tags:「A.图论-最短路相关」「B.Tricks」

  好题, 但为了 \(80\text{pt}\) 拼三大坨暴力真的好难受.

  首先转化一下问题, 在离线之后, 我们只需要保留一条 \(1\to n\) 的路径作为最后一条存在的路径. 则这条路径上的边不能 cut, 其他边若存在都能 cut.

  什么叫 "最后存在"? 可以发现, 令 \(S\) 为路径上每条边被 cut 的时间排序后的序列, 则 \(S\) 的字典序对应着路径的存在时间关系, 字典序越大, 存在时间越靠后. 我们只需要求出一条 "字典序最长路" 即可.

  我们先将所有从未被 cut 的边依次 cut 掉, 这是所有边的 cut 时间互不相同. 则令 cut 时间为 \(x\) 的边的权值为 \(2^x\), 字典序最长就变成路径权值和 reverse 后最小. 这样的权值约定是满足 Dijkstra 的需求性质的. 所以我们可以用 Dijkstra 求最短路, 但还剩下最后一个问题, 如何比较权值呢?

  最自然的想法是主席树维护区间 hash 暴力存储权值, 树上二分求二进制最低不同 bit. 一种更优美的方法是在最短路树上求 LCA: 对于两条路径 \(1\to w\to u\) 和 \(1\to w\to v\), 由于边权互不相同, 所以 \(w\to u\) 和 \(w\to v\) 上的边权互不相同, 为了比较字典序, 就只需要比较这两条路径的 \(\min\) 值大小! 这个比较常数巨大, 所以最好用线段树替代 Dijkstra 中的堆. 复杂度 \(\mathcal O(m\log^2n)\).

\(\mathscr{D}\sim\) 线段 *@

  Tags:「A.分治-猫树分治」「B.Tricks」

  不知道该评价是好题还是好 trick.

  猫树分治, 一个区间的贡献在跨 \(\textit{mid}\) 处统计. 对于取交操作, 若其不完全包含 \([l,r]\), 则其会对 \([l,r]\) 产生影响. 讨论若区间跨过 \(\textit{mid}\), 则所有线段左端点会向取交区间取 \(\max\), 右端点类似. 这可以用堆维护 (端点值, 出现次数) 维护. 对于没跨过 \(\textit{mid}\) 的询问, 它会将一些区间丢到更深层的分治区间, 总次数是 \(\mathcal O(n\log n)\) 的. 一个恶心的地方在于, 我们需要维护没跨 \(\textit{mid}\) 的询问对异侧端点的影响, 这里貌似需要手写堆支持全局取 \(\min\) 维护. 总之复杂度就是 \(\mathcal O(n\log n\log q)\).

Solution Set -「LGR-126」洛咕咕的 NOIP 模拟赛的更多相关文章

  1. 「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数

    「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数 题面描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数, ...

  2. Diary / Solution Set -「WC 2022」线上冬眠做噩梦

      大概只有比较有意思又不过分超出能力范围的题叭.   可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics   任意一个 ...

  3. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  4. Solution Set - 神奇 NOIP 模拟赛

    \[\mathfrak{\text{Defining }\LaTeX\text{ macros...}}\newcommand{\vct}[1]{\boldsymbol{#1}}\newcommand ...

  5. 「树形DP」洛谷P2607 [ZJOI2008]骑士

    P2607 [ZJOI2008]骑士 题面: 题目描述 Z 国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的 ...

  6. Solution -「牛客 NOIP 模拟赛」打拳

    \(\mathcal{Description}\)   现 \(2^n\) 个人进行淘汰赛,他们的战力为 \(1\sim 2^n\),战力强者能战胜战力弱者,但是战力在集合 \(\{a_m\}\) 里 ...

  7. Solution Set -「ABC 217」

      大家好屑兔子又来啦! [A - Lexicographic Order]   说个笑话,\(\color{black}{\text{W}}\color{red}{\text{alkingDead} ...

  8. 「NOIP模拟赛」Round 3

    Tag 计数+LIS, 二分+ST表, 计数+记搜 A. 改造二叉树 Description 题面 Solution 如果目标序列非严格递增,或者说目标序列是不下降的,那么答案就是 \(n\) 减去最 ...

  9. 【模拟】HHHOJ#251. 「NOIP模拟赛 伍」高精度

    积累模拟经验 题目描述 维护一个二进制数,支持如下操作 "+" 该数加 11 "-" 该数减 11 "*" 该数乘 22 "\&q ...

  10. 「NOIP模拟赛」数位和乘积(dp,高精)

    统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又 ...

随机推荐

  1. Angular 19 "要" 来了⚡

    前言 Angular 19 预计会在 11 月中旬发布,目前 (2024-10-27) 最新版本是 v19.0.0-next.11. 这次 v19 的改动可不小哦,新增了很多功能,甚至连 effect ...

  2. Rust 的静态网站生成器「GitHub 热点速览」

    如果你做过个人博客网站,那么一定对静态网站生成器不陌生.无论是 Ruby 语言的 Jekyll.Go 语言的 Hugo.还是基于 React 的 Gatsby,这些工具都有庞大的用户群体.对于喜欢的人 ...

  3. Servlet 3.0 新特性详解(servlet是单实例多线程的,线程池数量有限)

    Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能,Servlet 3.0 是 Servlet 规范的最新版本.本文主要介绍了 Servlet 3. ...

  4. PasteEx:一款.NET开源的Windows快捷粘贴神器

    前言 PasteEx是一款.NET开源的用于增强 Windows 粘贴功能的小工具,它解决了将剪贴板内容保存为文件的繁琐步骤.无需打开记事本等应用,它可直接将文字.图片等内容粘贴到桌面上,极大提升了效 ...

  5. python之pyexecjs

    pyexecjs是一个用Python来执行JavaScript代码的工具库,该库支持多种JavaScript运行时环境,如Node.js.PhantomJS.SlimerJS等,允许开发者在Pytho ...

  6. .NET Conf China 2024 AI相关内容解析

    .NET Conf China 2024中国 .NET 开发者峰会即将在上海召开,这次大会是一届完全由社区组织举办的中国.NET 开发者盛会,我们筹备大会之初就定下了大会的主题是"智能.创新 ...

  7. Nuxt.js 应用中的 render:island 事件钩子

    title: Nuxt.js 应用中的 render:island 事件钩子 date: 2024/12/1 updated: 2024/12/1 author: cmdragon excerpt: ...

  8. javascript 实现参数重载

    1.概要 在java中,同一个函数签名,比如 getUser,我们可以根据参数的不同,调用不同功能的方法.这也就是参数重载,如何在javascript也实现参数重载呢? 2.实现方法 function ...

  9. OAuth2 当前登录用户修改

    1.业务说明 有些情况下,我们希望用户登录后,可以修改用户的某些信息,比如修改当前的公司信息. 2.实现方法 @Resource TokenStore tokenStore; public JsonR ...

  10. HarmonyOS Next 入门实战 - 基础组件、页面实现

    基础组件 常用组件 Text:显示文本内容 Image:显示图片 Button:显示一个按钮 Column: 纵向布局 Row:横向布局 List:列表 各组件的用法 Text("文本组件& ...