https://www.lydsy.com/JudgeOnline/problem.php?id=5286 https://www.luogu.org/problemnew/show/P4425 https://loj.ac/problem/2495 题面见上面. 然后因为懒得写公式了所以看这个人的博客吧:https://www.luogu.org/blog/litble-blog/solution-p4425 合并的原理如果看了那个博客还没看懂的话,不妨看看下面这张图: 我们要求的是最上面区间…
显然最优走法是先一直停在初始位置然后一次性走完一圈.将序列倍长后,相当于找一个长度为n的区间[l,l+n),使其中ti+l+n-1-i的最大值最小.容易发现ti-i>ti+n-(i+n),所以也就相当于是后缀最大值最小.设ti-i=ai,即要求min{l+max{al..2n}}+n-1 (l=1..n).如果没有修改的话只要扫一遍就行了. 线段树看起来很难维护,考虑分块.每一块求出仅考虑该块的ai时上述值的前缀min和ai的后缀max.对于查询,从后往前考虑所选区间左端点在哪一块.如果该块某个…
gugu  bz lei了lei了,事独流体毒瘤题 一句话题意:任选一个点开始,每个时刻向前走一步或者站着不动 问实现每一个点都在$T_i$之后被访问到的最短时间 Step 1 该题可证: 最优方案必然是从某一格开始后一直等着然后走一圈正好全部访问到 证明: 如果时间倒流那就是从时刻T开始每一时刻向前走或是停着不动,每个元素过了T[i]会消失 如果这样的话你肯定是马不停蹄往前走对吧 所以反过来就是上面的结论 Q.E.D 上面的结论还有其他正确的表示方法,该方法仅供参考 如果您能想出其他证明,那么…
https://www.lydsy.com/JudgeOnline/problem.php?id=5288 https://www.luogu.org/problemnew/show/P4436 https://loj.ac/problem/2508 看洛谷题解里面清一色的暴力,连唯一正解也是用了奇技淫巧才过(当然本题解参考了那个题解). 于是难受的我来简单说一下“正解”(如有错误请指出orz). 先从暴力开始,对于每个点我们暴力找到其能够到达的最大的区间[l,r]. 一个优化:我们在加入新的点…
颂魔眼中的一眼题我大湖南竟无一人\(AC\) 首先我们考虑一个性质:我们肯定存在一种最优解,满足从某个点出发,一直往前走,不停下来. 证明:我们假设存在一种最优解,是在\(t_i\)的时候到达\(a\)点,那么我肯定会在\(t_i - x(x≥1)\)的时间会到达\(a - 1\)号点 我们假设\(x != 1\),即我们会在\(a-1\)点进行停留,此时那么我们到达\(a - 2\)号点的时间\(<t_i - 2\),到达\(a-3\)号点的时间\(<t_i - 3\) 那么如果我有一个点\…
题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起点,然后就是一个单调队列的模型了.整理一下我们需要求的东西就是这个 \[n - 1 + \min_{i=1}^n i + (\max_{j=i}^{2n} t[j] - j)\] (\(t[j]\)表示第\(j\)个位置出现的时间,其实\(\max\)的上界应该是\(i + n - 1\)的,但是显…
一个结论:一定存在一个最优解只走一圈.否则考虑从最后一个结束位置开始一定可以达到相同效果 画个图,类似是一种斜线感觉 考虑一个高度贡献的最高点 对于i开始的连续n个,答案是:max(Tj-j)+i+n-1 令ai=Ti-i 断环成链复制一倍,后面的ai只能更小,所以变成后缀:max(aj)+i+n-1 求ans=min(max(aj)+i+n-1) 还是不行 我们反过来考虑一个j会贡献的最小的i 如果一个j是整个后缀部分的最大值,那么贡献的最小的i就是j前面第一个大于aj的位置 如果不是,那么没…
https://www.lydsy.com/JudgeOnline/problem.php?id=5290 https://www.luogu.org/problemnew/show/P4438 的确不是很难的题. —————————————————— 先是吐槽时间(可略过): 设f[i][j][k]为以i为根的子树中j公路不修k铁路不修的最小值. 然后dfs就能过……不过貌似我想的dfs可能要存很多东西……觉得正解肯定没有那么麻烦,于是就弃疗了. —————————————————— 设f[i…
https://www.lydsy.com/JudgeOnline/problem.php?id=5289 https://www.luogu.org/problemnew/show/P4437 考虑对于a[i]=m,a[m]=n,我们令p[j]=i,p[k]=m(一定会有一对(j,k)满足这个条件的),则我们会有p[k]=a[p[j]],此时我们要满足k<j,也就是a[m]放的位置要比a[i]靠前. 也就是说选第m个之后才能选第i个. 转换成图论模型就是m->i <=> a[i]…
原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建议JSOI的出题人好好学学) #include <bits/stdc++.h> #define N 1000005 #define getchar nc using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*…