bzoj4082】的更多相关文章

4082: [Wf2014]Surveillance Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 260  Solved: 100[Submit][Status][Discuss] Description 给你一个长度为len的环,以及n个区间,要你选择尽量少的区间,使得它们完全覆盖整个环.问最少要多少个区间. Input 输入数据的第一行是两个整数len和n,代表环的长度以及区间个数.之后n行描述的是n个区间,每个区间分别用一对数字(a,b)…
题意 给你一个长度为 \(len\) 的环,以及 \(n\) 个区间,要你选择尽量少的区间,使得它们完全覆盖整个环.问最少要多少个区间. \(len,n\leq 10^6\) . 分析 考虑普通的区间覆盖的贪心做法,这里只需要倍增一下. 如果区间 \(r< l\) 把 \(r\) 设置成 \(r+len\) . 每个解都一定存在一个区间满足其标号最小,且可以通过后面的区间跳回自己的右边,只需要以这类区间开头即可. 总时间复杂度为 \(O(nlogn)\) . 处理区间覆盖的技巧:记录后缀最小值…
贪心+倍增 首先如果这个问题在序列上,好像可以按右端点排序,然后从起点开始向能到的最远的地方走. 但是环上不可以,因为随即一个起点可能不是最小的. 然后神思路来了:我们先将环展开倍增,再将区间按右端点排序,然后每个区间连向能达到最远的区间连边.因为每个区间只向外连一条边,而且最后一个区间没有后继,所以这是一颗树.(森林不可能吧,因为每个点都被覆盖了,那么每个区间都有后继,到达最后的区间时肯定有会归到最后一个区间)枚举每个区间,向上倍增,因为每个区间的祖先右端点都要大一些,所以只要倍增到自己左端点…
倍增&矩阵乘法 专题复习 PreWords 这两个基础算法我就不多说啦,但是还是要介绍一下" 广义矩阵 "乘法 其实就是把矩阵换成取\(max\),然后都一样... 据神仙LBC说:这不显然是对的吗! \[ \ \] \[ \ \] [usaco2007 Nov] relays 奶牛接力跑 离散一下,然后套矩阵乘法\(a[i][j]\)记录从\(i\)出发到\(j\)的最小答案,快速幂即可 const int N=410,P=1e4+7; int n,m,s,t; int a[…