上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 85 下一页
摘要: 传送门 并不会做 原题在这里 对于两个无序序列是否相等的判断:可以用无序hash Code: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 500010 #define ll long l 阅读全文
posted @ 2021-11-13 06:26 Administrator-09 阅读(9) 评论(0) 推荐(0)
摘要: 传送门 并不能想到 发现当 \(n\) 为偶数的时候将序列分为 \(n\) 个长度为1的就可以 当 \(n\) 为奇数时若存在一个 \(a_i\geqslant a_{i+1}\) 则可以将这两个点分到一个子序列里,一样有解 同时不满足这两个条件的一定是长度为奇数的上升子序列 若将其划分为多个子序列 阅读全文
posted @ 2021-11-12 19:21 Administrator-09 阅读(10) 评论(0) 推荐(0)
摘要: 传送门 首先有一个 \(O(nc^2)\) 的暴力 令 \(f_{i, j}\) 为考虑到第 \(i\) 个位置,当前有 \(j\) 个糖的最大收益 转移的时候枚举在当前位置买入/卖出几块糖 这个暴力可以优化到 \(O(nc)\) 具体地,可以利用完全背包的思想,以卖出为例 \(f_{i, j}=m 阅读全文
posted @ 2021-11-11 21:07 Administrator-09 阅读(8) 评论(0) 推荐(0)
摘要: 传送门 看起来需要求出每个数在哪些区间内是第 \(k\) 大 不会求,就炸了 关于形如「求序列内所有数左/右边」前 \(k\) 个大于/小于这个数的数: 需要避免从一个数向两边爆扫的时候扫到小于这个数的数 于是对这个序列建立一个双向链表,将整个序列复制下来排序,从小到大枚举 枚举到一个数时,向两边爆 阅读全文
posted @ 2021-11-11 20:51 Administrator-09 阅读(5) 评论(0) 推荐(0)
摘要: 传送门 有一个暴力做法是枚举一条边断开,在形成的两个连通块中求直径更新答案 于是树形DP预处理可以做到 \(O(1)\) 求直径 整体复杂度 \(O(n)\) Code: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f 阅读全文
posted @ 2021-11-11 20:38 Administrator-09 阅读(7) 评论(0) 推荐(0)
摘要: 传送门 按题意DP即可 Code: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 2010 #define ll long long //#define int long long cha 阅读全文
posted @ 2021-11-11 20:36 Administrator-09 阅读(5) 评论(0) 推荐(0)
摘要: 传送门 首先有个显然地过分但我没有看出来的结论:若没有修改,从 \(u\) 到 \(v\) 的最短路长度是 \(a_u\) 那现在改了几条边,最短路可能就变成了 \(dis_{u, z}+a_z\) 发现这个 \(z\) 和 \(u\) 之间必须通过修改过的边连通,否则绕一下一定不优 于是将每个修改 阅读全文
posted @ 2021-11-11 07:24 Administrator-09 阅读(52) 评论(0) 推荐(0)
摘要: 传送门 链上的部分分可以单调栈求出范围 \(l, r\) 后主席树维护 其实也可以求出后转化为三维偏序求解 题解说可以忽略一个条件,再减去算重的 然后正解 与形如 经过点中的最大值/起点为全路径最大值 类似的问题,序列上可以考虑笛卡尔树,树上可以考虑kruskal重构树 对点权建立kruskal重构 阅读全文
posted @ 2021-11-11 06:37 Administrator-09 阅读(8) 评论(0) 推荐(0)
摘要: 传送门 当 \(min\{a_i\}>0\) 时,整个序列可以被任意划分 否则可以证明原序列的mex一定是划分得到的序列的mex 于是令 \(f[i]\) 为区间 \([1, i]\) 的合法划分方案数 特别的,\(f[0]=1\) 于是发现转移点 \(j\) 要求 \([0, mex)\) 中的数 阅读全文
posted @ 2021-11-11 06:21 Administrator-09 阅读(9) 评论(0) 推荐(0)
摘要: 传送门 可以证明一个结论: 若从后向前扫,每个重复的数变为它后面第一个没有出现过的数一定更优 于是可以用并查集找这样的未出现的数 复杂度 \(O(nlogn)\) Code: #include <bits/stdc++.h> using namespace std; #define INF 0x3f 阅读全文
posted @ 2021-11-11 06:13 Administrator-09 阅读(5) 评论(0) 推荐(0)
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 85 下一页