NOI 2021 部分题目题解
最近几天复盘了一下NOI 2021,愈发发觉自己的愚蠢,可惜D2T3仍是不会,于是只写前面的题解
Day1 T1
可以发现,每次相当于将 \(x\to y\) 染上一种全新颜色,然后一条边是重边当且仅当两端有颜色且相同,于是就可以使用树链剖分维护了。
复杂度 \(\Theta(n\log^2n)\)。
Day1 T2
可以发现,当 \(n_i\) 都相同的是,答案就是邻接矩阵行列式的积,也即是邻接矩阵积的行列式。
拓展发现,\(n_i\) 不同的时候依旧适用,不过不会证明。
Day1 T3
首先可以发现,在缩点之后一定存在一种树形结构使得不改变连通性,因为假设存在 \(z\to x,y\to x,z\to y\),那么 \(z\to x\) 是不需要的。所以在构造树的时候可以选一个入度为 \(0\) 的点开始,然后每次儿子从 scc 序大的开始。
假设已经建好了树,可以发现 \(k=0\) 时有解的话就是 \(x\to y\) 上链上点的大小之和,\(k=1\) 的话需要分类讨论,\(k\) 更大时显然分类讨论不是很好搞。
发现假设我们定义“好点”为新增边的端点中既能从 \(s\) 到达又能到 \(t\) 的点(合法情况下包括 \(s,t\)),那么一个点合法当且仅当祖先中有“好点”,子树中有“好点”。
那我们就可以建出虚树,然后算贡献了。(然而似乎可以不用建出虚树)。
Day2 T1
不难发现分成 \(16\) 段的话,如果有解那么解的方案一定有一段完全相同,然后你发现随机情况下一段最多有 \(7\) 个左右,暴力判就好了。算差异的话可以用 __builtin_popcount \(\Theta(1)\) 计算。
Day 2 T2
首先可以看出并不需要除以 \(\gcd\)。
可以发现如果 \(a_i\) 是确定的,那么:
a_i & 1\\
1 & 0
\end{bmatrix}\]
从右往左算的积的 \((0,0)\) 位和 \((0,1)\) 位就是答案。
考虑 W 操作的影响,你发现:
1 & 1\\
0 & 1\\
\end{bmatrix}
\times
\begin{bmatrix}
a_i & 1\\
1 & 0
\end{bmatrix}
=
\begin{bmatrix}
a_i+1 & 1\\
1 & 0
\end{bmatrix}
\]
所以就相当于在后面增加一个
1 & 1\\
0 & 1
\end{bmatrix}
\]
的矩阵。
考虑 E 操作,不难发现两种情况其实操作下来等价,所以我们只需要考虑第二种情况。实际上就是增加:
1 & 1\\
1 & 0
\end{bmatrix}
\begin{bmatrix}
1 & 1\\
1 & 0
\end{bmatrix}
\begin{bmatrix}
1 & -1\\
0 & 1
\end{bmatrix}
\]
又因为矩阵有结合律,所以就相当于增加:
2 & -1\\
1 & 0
\end{bmatrix}
\]
所以用平衡树维护就好了。需要卡常的话可以把矩阵乘法那里手写而非循环形式。
NOI 2021 部分题目题解的更多相关文章
- [NOI 2021] 轻重边 题解
提供一种和不太一样的树剖解法(一下考场就会做了qwq),尽量详细讲解. 思路 设重边为黑色,轻边为白色. 首先,先将边的染色转化为点的染色(即将 \(u\) 节点连向父节点的边的颜色转化为 \(u\) ...
- ZROI 部分题目题解
ZROI 部分题目题解 335 首先发现一个性质: 对于最短的边而言,所有点的路径如果经过了这条边,那么路径的权值就是这条边的边权(废话) 那么我们把最短的边拎出来,可以发现,博物馆确定时,每个点按照 ...
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
- 2021.07.17 题解 CF1385E Directing Edges(拓扑排序)
2021.07.17 题解 CF1385E Directing Edges(拓扑排序) CF1385E Directing Edges - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ...
- CodeForce——Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)前三道题目题解
目录 A: B: C: 题目链接 A Divide and Multiply standard input/output 1 s, 256 MB 正在上传-重新上传取消 x13036 B Willia ...
- LuoguB2001 入门测试题目 题解
Update \(\texttt{2021.7.3}\) 经测试,本题 \(a,b\) 范围在 long long,对代码进行了修改,并修改一些笔误,更新了数据范围. \(\texttt{2021.7 ...
- Diary -「NOI 2021」酱油记
雨幕浓稠 远近一白 是水雾弥漫的天 还是泡沫撑起的海 雨真大呢. 前几天去 ZH 中学集训没啥好记的,就从会合日开始叭. [Day -1] 逃出 ZH,掉入梦麟.( 高中的同学们忘记带 ...
- chd校内选拔赛题目+题解
题目链接 A. Currency System in Geraldion 有1时,所有大于等于1的数都可由1组成.没有1时,最小不幸的数就是1. #include<iostream> ...
- Tarjan & LCA 套题题目题解
刷题之前来几套LCA的末班 对于题目 HDU 2586 How far away 2份在线模板第一份倍增,倍增还是比较好理解的 #include <map> #include <se ...
随机推荐
- RabbitMq四种模式介绍和授权
rabbitmqctl change_password admin admin123 修改admin密码 界面管理和授权操作 1新增用户 rabbitmqctl add_user admin amin ...
- LeetCode入门指南 之 动态规划思想
推荐学习labuladong大佬的动态规划系列文章:先弄明白什么是动态规划即可,不必一次看完.接着尝试自己做,没有思路了再回过头看相应的文章. 动态规划一般可以由 递归 + 备忘录 一步步转换而来,不 ...
- MySQL-后知知觉的索引
什么是索引? 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重 ...
- adb 常用命令大全(3)- 查看手机设备信息
查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery 其中 scale 代表最大电量,level 代表当 ...
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
- python 直接插入排序
# 先将未排序的元素放到九天之上,一个临时变量temp,上到九天之上去观察前面已经排好的序列, # 然后从后向前对比,只要临时变量小于某个位置的值,就将其向前移动一位,就是给比它下标大 # 1的位置处 ...
- PHP设计模式之访问者模式
访问者,就像我们去别人家访问,或者别人来我们家看望我们一样.我们每个人都像是一个实体,而来访的人都会一一的和我们打招呼.毕竟,我们中华民族是非常讲究礼数和好客的民族.访问者是GoF23个设计模式中最复 ...
- php安装imagick扩展
下面/usr/local/php5是php的安装目录 安装imagickcd /usr/local/srcwget http://pecl.php.net/get/imagick-3.0.1.tgz ...
- (转载https://segmentfault.com/a/1190000016313947)了解RestFul Api架构风格设计
最近几年REST API越来越流行,特别是随着微服务的概念被广泛接受和应用,很多Web Service都使用了REST API. REST是HTTP规范主要编写者之一的Roy Fielding提出的, ...
- gin 源码阅读(1) - gin 与 net/http 的关系
gin 是目前 Go 里面使用最广泛的框架之一了,弄清楚 gin 框架的原理,有助于我们更好的使用 gin. 这个系列 gin 源码阅读会逐步讲明白 gin 的原理. gin 概览 想弄清楚 gin, ...