摘要: 这道题目其实可以只用一次dp 设\(f[i]\)表示从\(1\)到\(i\)所经过点的最小权值,那么\(ans=max(w[i]-f[i])\) 但是这样做有一个问题,不是所有的点都可以到\(n\)的 所以相当于还是要跑一次搜索来标记 阅读全文
posted @ 2024-05-19 18:37 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 设\(dist[x]\)表示源点到\(x\)的最短路的距离(图中无负环),若对图中任意一条边\((x,y,z)\)满足\(dist[y]≤dist[x]+z\),那么\(dist\)就是最短路数组 证:考虑任意一个点\(a\),假设找出了一条源点到\(a\)的最短路径{\(x_0,x_1,...,x 阅读全文
posted @ 2024-05-19 16:45 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 按照题目来模拟,假设\(a_x\)为最大的,那么任意时刻不可能选中\(a_{x-1}\)或者\(a_{x+1}\)来操作的 然后就可以发现,我们选出的数一定是不相邻的,也就是说,我们每次在还可以选择的数中找出最大的数(满足此条件下下标最小),并且把相邻的两个数标记为不可选择,一直重复这个过程直到为\ 阅读全文
posted @ 2024-05-19 16:24 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这道题目肯定是考虑维护前驱了(注意不用前驱后继都维护) 但是注意,这里的前驱定义为位置\(i\)前面第一个与\(i\)加起来为\(w\)的位置 然后就会出现这篇题解所说的情况 这篇题解也给了解决方案,由贪心易证,就是注意此时一定不要超时了 所有影响的位置: 考虑前驱受到影响的位置一定在当前修改位置的 阅读全文
posted @ 2024-05-19 15:39 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 法一:仍然是乱搞 法二:看这篇题解 等差数列任意两项的差一定是公差的倍数,这个好像对于等差数列挺常用的,我记得哪一道数论也有这个方法 判断一比较显然,判断二是因为我们显然不能对这个序列真的排序(排序只有\(01\)序列可以比较快速地排序),所以只能维护相邻的东西,等差数列嘛所以维护相邻的差,于是想到 阅读全文
posted @ 2024-05-19 15:03 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 法一:首先记住这种看起来没办法维护的东西,我们可以用随机化搞法。也就是说以后不要一直想着精确的正解了 考虑利用哈希思想。显然区间最大值减去最小值为区间长度这是必要条件。在此前提下,我们从以下几个选项选出几个维护就好了:区间和,区间平方和,区间立方和,区间异或和(这道题目也用了类似的思想) 法二:显然 阅读全文
posted @ 2024-05-19 14:45 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 记住方差公式可以展开就好了 类似的:区间加区间 sin 和 阅读全文
posted @ 2024-05-19 14:14 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑