Codeforces 题面传送门 & 洛谷题面传送门 讲个笑话,这题是 2020.10.13 dxm 讲题时的一道例题,而我刚好在一年后的今天,也就是 2021.10.13 学 LCT 时做到了这道题...... 首先考虑一个区间的导出子图是一棵树的充要条件.显然这些点组成的边集不能有环,其次这些点组成的导出子图必须满足 \(|V|-|E|=1\),而对于一个不存在环的图必然有 \(|V|-|E|\ge 1\),因此这两个条件加在一起就组成了一个区间符合条件的充要条件. 考虑如何维护之,注意到当…
题目简述:给定一个$n \times m$的二维矩阵$a[i][j]$,其中$1 \leq nm \leq 2 \times 10^5$,矩阵元素$1 \leq a[i][j] \leq nm$且互不相等.一个区间$[l, r]$是[好]的,如果所有在$[l, r]$范围内的元素(在平面上)构成了一棵树.求[好]区间$[l, r](1 \leq l \leq r \leq nm)$的个数. 解:code 建模: 令$G = (V, E)$表示二维矩阵$a[i][j]$对应的无向图,构造如下: 1…
题解请看 Felix-Lee的CSDN博客 写的很好,不过最后不用判断最小值是不是1,因为[i,i]只有一个点,一定满足条件,最小值一定是1. CODE 写完就A,刺激. #include <bits/stdc++.h> using namespace std; typedef long long LL; #define X first #define Y second inline void read(int &x) { int flag = 1; char ch; while(!i…
题意 有一个\(n*m\)的网格,每个格子有一个数,为\(1\)~\(n * m\)的排列 一个区间\((1<=l<=r<=n*m)\)是好的,当且仅当:数值在该区间内的格子,构成一棵树(有公共边的格子) 统计好区间数 \(n,m<=2000,n*m<=2*10^5\) 题解 首先先考虑什么情况形成了一棵树? 显然是 这个区间的点数 - 这个区间内互相连的边数 = 1 且 只有一个联通块 这样统计区间的问题一般都要双指针扫一下 我们可以固定左指针\(l\),然后让右指针\(r…
传送门 构成一棵树可以分成两个限制:图不成环.图的点数-边数=1. 我们考虑枚举右端点\(r\)计算所有可能的左端点\(l\)的答案.我们先考虑第一个限制:图不成环.注意到当\(r\)确定的时候,满足这个条件的\(l\)一定是一段后缀.设\(p_r\)表示满足图不成环时最小的\(l\),还可以发现\(p_r\)是单调不降的.那么我们可以使用双指针维护,在\(r\)增加\(1\)的时候使用LCT维护\(p_r\)的值. 接下来在每一个\(p_r\)求完之后,考虑图的点数-边数=1的限制.每一次\(…
Codeforces 题面传送门 & 洛谷题面传送门 考虑将一个点 \(x\) 的编号变为当前所有点编号最大值 \(+1\) 会对每个点的删除时间产生怎么样的影响.由于编号最大的点肯定是最后一个被删除的,因此我们不妨令编号最大的点为根,那么可以发现,对于不在 \(x\) 到根这条路径上的点,它们删除的相对位置顺序是不会发生变化的,因为删除这样的点时,肯定它们的儿子已经被删除了,而它的父亲肯定没被删除,因此 \(x\) 到根节点这条路径上的点的删除顺序肯定不影响其它点的删除顺序,而由于此时 \(x…
http://codeforces.com/contest/761/problem/C 题意:给出n个串,每个串的初始光标都位于0(列)处,怎样移动光标能够在凑出密码(每个串的光标位置表示一个密码的字符,密码至少包含3种字符:数字,小写字母,特殊符号)的情况下使得移动的光标步数最小. 思路: 因为每个串只提供一个密码,所以我们先预处理计算出每个字符串3种字符的最少移动步数. 然后接下三重循环枚举,分别表示数字,小写字母,特殊符号由第i,j,k行提供. #include<iostream> #i…
E. Dasha and Puzzle time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Dasha decided to have a rest after solving the problem. She had been ready to start her favourite activity — origami, bu…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output "Duel!" Betting on the lovely princess Claris, the duel between Tokitsukaze and Quailty has started. There are n cards in a row. Each card h…
题:https://codeforces.com/contest/1307/problem/D 题意:给定无向图,n为点,m为边.在给个k,为特殊点的数目,题目要求在这些特殊点上连一条边,让新图最短路尽可能大,问新图最短路(1到n)是多少? 分析:因为题目保证连通且原本的图一定可以从1到n,我们假设原本的图最短路为ans: 易得虽然要求我们最大化最短路,但是加一条边只可能让答案不变或变小(因为一定要加这条边),不会使最短路变大: 假设我们在特殊点x和y之间加了边,要是新图的最短路有走这条边,那么…