【IOI 1994】 The Buses】的更多相关文章

[题目链接] http://poj.org/problem?id=1167 [算法] 深度优先搜索 + 迭代加深 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio&g…
[题目链接] 点击打开链接 [算法] 线段树扫描线求周长并 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib>…
[题目链接] 点击打开链接 [算法] 对于第一问,将这个图缩点,输出出度为零的点的个数 对于第二问,同样将这个图缩点,输出入度为零.出度为零的点的个数的最大值 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex>…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2599 [算法] 点分治 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 200010 #define MAXK 1000010 typedef long long ll; const ll INF = 2e9; ll i,n,k,u,v,w,tot,root,len,ans; ll head[MAXN]…
虽然作为IOI的Day1T3,但其实不是一道很难的题,或者说这道题其实比较套路吧. 接下来讲解一下这个题的做法: 如果你做过NOI 2018的Day1T1,并且看懂了题面,那你很快就会联想到这道题,因为两者都是问某一个点能到达的点集,只不过限制在点上还是边上的问题. $Kruskal$重构树可以把在边上的限制转化成点上的,于是能解决NOI 2018的Day1T1:那么这道题就可以直接做,因为限制已经在点上了. 具体来讲,从$s$点只能走编号$>=l$的点,那么我们就构建一棵树,使得任意一个非根节…
题目链接 IOI的签到题感觉比NOI的签到题要简单啊,至少NOI同步赛我没有签到成功…… 其实这个题还是挺妙妙的,如果能够从题目出发,利用好限制,应该是可以想到的做法的. 接下来开始讲解具体的做法: 题目中有一个重要的限制就是答案序列首字母不会出现多次,这意味着当我们知道首字母后,接下来序列中的候选字符就只剩下$3$个了,以及我们可以在一个询问中用首字母来分割多个你想要知道的字符串. 很显然我们可以用二分找到首字母,这将花费$2$次询问机会.方便起见,我们把首字母定为$a$,剩下的$3$个字符分…
http://uoj.ac/problem/29 cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案. 举例:\(fi\)表示一直向右走i天能参观的最多景点数. 其中有一个很重要的条件\(fi≤fi+1fi≤fi+1\),这个条件是分治的前提. 关于这个条件的证明,我想了好久才想出来,用反证法证明一下就行. 分治时需要用主席树维护路径上的前k大和. #include<cstdio> #include<cstring> #include&…
裸的点分治,然而我因为循环赋值$s$时把$i <= k$写成$i <= n$了,WA了好长时间 #include<cstdio> #include<cstring> #include<algorithm> #define N 200100 #define inf 2147483647 #define max(a,b) (a)>(b)?(a):(b) #define min(a,b) (a)<(b)?(a):(b) #define read(x)…
这是一道极好的图论题,虽然我一开始只会做$18$分,后来会做$51$分,看着题解想了好久才会做(吐槽官方题解:永远只有一句话),但这的确是一道好题,值得思考,也能启发思维. 如果要讲这道题,还是要从部分分一点一点讲起,毕竟解题时的思路也是慢慢这么推进的. 首先第一次把所有边都变成同一种颜色,询问可以得到$s$到$t$的无权最短路径的长度$dist$.这个询问是必须的,因为这个$dist$在接下来的判定中起来很大的作用. $Subtask 2$:给定一棵树,知道$s$是根,求$t$: 这个问题将作…
我感觉这个题作为Day2T1,有一定的挑战性.为$Rxd$没有完成这道题可惜. 我觉得这道题,如果按照前几个部分分的思路来想,就有可能绕进错误的思路中.因为比如说每个传感器最多只在序列中出现$2$次,很有可能会想到分别在每一个传感器之后用开关来控制.我在做这个题的时候就因为这个思路陷入僵局.事实上这个做法的弊端十分明显,首先如果可行的话,实现起来也会十分复杂,毕竟所有传感器序列中交错复杂,难于处理:其次,对于每一个传感器分别使用开关很可能导致开关的浪费. 这道题的两个关键的想法都源于其中的两个部…