首页 > 其他分享 >NOI2020

NOI2020

时间:2023-06-28 17:36:00浏览次数:35  
标签:标记 loj 线段 times NOI2020 ge 节点

美食家

很显然可以写出矩阵。

发现相当于有 \(q\) 次询问 \(A^k\),预处理矩阵的 \(2^0,2^1,\cdots,2^w\) 次幂然后用向量乘矩阵即可做到 \(O(n^3\log T+qn^2\log T)\)。

https://loj.ac/s/1758382

命运

没发现链是祖先-后代这样的,想了一年不会做

有这个性质就可以直接 dp 了,然后线段树合并优化。完整题解。

这是带标记的线段树合并。很自然的想法是,在线段树合并递归下去之前,我们先把 \(p,q\) 的标记下传。但由于我们肯定是动态开点,下传标记的时候,如果没有儿子,需要新建儿子然后把标记传下去。

但当线段树合并的时候,如果遇到两个节点 \(p,q\) 都没有儿子,但都有标记,那么会直接把 \(p,q\) 的子树都建出来。此时的解决办法是,我们特判 \(p,q\) 中任一节点没有儿子的情形(不妨设其为 \(q\)),这种情况下 \(q\) 那边的所有叶节权值均为 \(f_q(0)\),其中 \(f_q\in F\) 表示 \(q\) 节点上的标记函数。

但如果仅特判两边都没有儿子的情形,复杂度仍然是错误的。

那么我们可以直接在 \(p\) 节点上打标记,表示这个区间内的所有元素 \(x\) 均由 \(x\leftarrow x\times f_q(0)\),其中 $\times $ 是叶节点的操作。由于多了一种操作,还需要改改标记函数。那么最终我们要维护的就是区间覆盖,区间加,区间乘。这个还是比较简单的。这样就可以做到只要一边没儿子就直接返回了?

我觉得这种东西很神秘,他在原本的操作中加入了一种新操作,即区间 \(x\leftarrow x\times v\),其中 \(\times\) 是叶节点操作。如果 $\times $ 这个运算变困难一点是不是就做不了了[晕],比如 \(\text{xor}\),或者 \(x\times y=\gcd(x,y)\),这种。哦不过这种,貌似只特判一边也做不了啊?但是如果不带区间操作那么线段树合并是完全可以处理任何叶节点操作的,很神秘啊,有没有 ds 大师教教[可怜]

https://loj.ac/s/1797226

时代的眼泪

写了一个(迫真)线性空间的做法

制作菜品

首先把 \(d\) 排序。不难发现,由于 \(d_1\) 肯定要被用,因此必须有 \(d_1+d_n\ge k\),否则根本用不了 \(d_1\)。

不难想到一个贪心:每次选出最小的 \(d_1\),找到满足 \(d_1+d_i\ge k\) 的最小的 \(i\),用 \(d_i\) 耗尽 \(d_1\) 即可。

然后我们写一下发现过不了样例 \(2\),但是居然能过样例 \(3\)??

大胆猜测 \(m\ge n-1\) 时这个算法都是正确的。交一下发现确实是对的(不是)

那考虑 \(m=n-2\) 怎么做。

发现 \(m=1\) 肯定无解,\(m=2\) 的时候,设四个数分别是 \(a<b<c<d\),那么有解必须要有两个数加起来 \(=k\),剩下两个数加起来也 \(=k\),否则我们肯定凑不齐两个。

欸我们发现这个很有感觉对不对。那你再想想就发现如果给每个盘子两种材料连边就至少有两个连通块,每个连通块的 \(m\) 都 \(\ge n-1\),那所以必须得能分出来一个和恰好为 \((|S|-1)k\) 的子集 \(S\)。

直接做或许还要记录个数,但我们直接把每个数都减去 \(k\) 就相当于只需要和为 \(-k\) 了。

那 bitset 优化背包就行,单组数据复杂度 \(O(\frac{n^2k}{w})\)。

https://loj.ac/s/1805149

超现实树

样例 \(2,3\) 给到了比较好的提示,我们发现如果这个节点处,这三种树都存在,那么他就几乎等价于一个单点;而单点自然是 Almost Complete 的。

但问题在于你这三种子树所在的树可能别的地方形态不一样导致实际上没法缩成单点

经过看题解毛估估之后发现另一边得是单点才行,那就完事了

心路历程

https://loj.ac/s/1805487

翻修道路

操吴戈兮披犀甲

标签:标记,loj,线段,times,NOI2020,ge,节点
From: https://www.cnblogs.com/YunQianQwQ/p/17512033.html

相关文章

  • [NOI2020] 时代的眼泪
    分块。设分出来左散块\(A_1\),中间块\(B_1,\cdots,B_k\),右散块\(A_2\)。那么贡献有\(A_1\leftarrowA_1\)即散块对自己,\(A_1\leftarrowA_2\)即散块对散块,\(A_i\leftarrowB_j\)即散块对整块,\(B_i\leftarrowB_j(i\neqj)\)即整块对整块,\(B_i\leftarrowB_i\)即整块自己。......
  • [Cnoi2020]光图-解题思路
    P6159-Cnoi2020光图\(通过观察样例,我们会发现光线先是从0号点射向p号点,然后再射到p\times2号点,然后是p\times3号点,以此类推。那么射到的第k个点应该就是编号为p\tim......
  • NOI2020
    赛前才发现真题基本没做过/kkDay1美食家老经典题了,先写出一个dp,\(f[i,j]\)代表第\(i\)天在\(j\)号点的最大权值。转移显然,由于\(w\le5\)所以只需保留前\(5\)......
  • P6792 [SNOI2020] 区间和
    对于修改,看上去要用SegmentTreeBeats维护。查询根据经典套路,维护每个结点的最大前缀和最大后缀。我们知道SegmentTreeBeats的思想是仅处理仅会修改最小值的区间,......
  • [NOI2020]制作菜品
    链接:https://www.luogu.com.cn/problem/P6775题目描述:有\(m\)道菜,和\(n\)种原材料,每个原材料有一个质量\(d_{i}\),有\(\sum_{i=1}^{n}{d_{i}}=m\timesk\)(m为正整数),每次......
  • P6776 [NOI2020] 超现实树
    \(\mathcal{Link}\)比较智慧,但如果能想到链树的话其实不难。(为啥全机房都在刷Ynoi就我在搞思维题啊)考虑啥叫“只有有限棵树不能被表示出来”。可以发现,这等价于任意一......
  • 【XSY3527】饮料_【NOI2020】制作菜品
    XSY押题!/se对于一类问题:有\(n\)种不同的饮料,第\(i\)种有\(a_i\)升。你需要把它们分到\(m\)个瓶子里面,每个瓶子容量为\(k\),你的分配方案需要满足:每个瓶子都被......
  • P6772 [NOI2020] 美食家 题解
    一道不错的题目。一个朴素的dp就是\(f_{i,x}\)表示时间\(i\)时从1走到\(x\)的最大美味值,就有转移\(f_{i,v_j}=\max\{f_{i-w_j,u_j}+c_{v_j}+美食节贡献\}\),结......
  • P6835 [Cnoi2020]线形生物 题解
    通过这道题可以看出来pz根本不会期望考虑期望线性性质,设\(E_{x\toy}\)表示从\(x\)走到\(y\)的期望步数,那么有\(E_{1\ton+1}=\sum_{i=1}^nE_{i\toi+1}\),因此考......