11 2024 档案
摘要:第一部分,主要以数据结构和图论为主。 遗漏了许多,懒得补了。 0.快读 为了观感,之后的代码就将前面这几行去掉了。 #include<bits/stdc++.h> using namespace std; #define rd read() #define gc getchar() #define
阅读全文
摘要:原题链接 最后悔的一集,感觉 D \(<\) everything。 考虑由确定的点推出其他点的答案,发现最高点的答案是确定的,设其位置为 \(x\)。 然后根据题目定义,发现可以分成 \([1,x-1],[x,n]\) 两个区间,\([x,n]\) 答案均为 \(h_x\)。 对于 \([1,x-
阅读全文
摘要:原题链接 byd 的题敢卡李超线段树!!望周知!!😡😡 然后斜率优化就过了。 #include<bits/stdc++.h> using namespace std; #define rd read() #define ll long long #define ld long double #d
阅读全文
摘要:原题链接 好题,记录一下。 首先若干个区间限制,根据套路,我们只在右端点统计信息。 因为只有三种颜色,再看数据范围,可以考虑三维 dp。 设 \(f_{i,j,k}\) 设前 \(i\) 个数,与 \(i\) 颜色不同的两种颜色的最后出现位置 \(j,k\),规定 \(j\ge k\)(\(j=k\
阅读全文
摘要:原题链接 奶龙题,主要是凸性的证明,然后 wqs 二分求解即可。 轮数的选择是 \(1\) ~ \(n\),假如是 \(1\) 轮,答案显然为 \(1\),为 \(n\) 轮,答案就是 \(\sum_{i=1}^{n}i^{-1}\),从这里就可以直接猜出凸性了。 然后是不考虑轮数限制的求法,直接
阅读全文
摘要:简化题意,给一棵树,找出恰好 \(k+1\) 条链,使这些链之和最大。 有恰好选出的字眼,并且原问题显然具有凸性,直接考虑 wqs 二分。 然后每条链会减去二分的 \(mid\),接下来就没有限制,求最大链和及链的数量,考虑树形 dp。 设 \(f_{x,0/1/2}\) 表示以 \(x\) 为根的
阅读全文
摘要:原题链接 很好的题,wqs 二分+斜率优化 dp。只可惜是李超线段树玩家最伤心的一集。 对原式先化简: \(\begin{aligned} \frac{((\sum_{i=1}^{n}x_i\times \overline{x})+\overline{x})^2}{\overline{x}^2}&=
阅读全文
摘要:1:P4655 [CEOI2017] Building Bridges 奶龙题。 如果你问我为什么要把斜率优化的题放到这,因为这道题的状态转移方程太奶龙了,没什么考察 \(\text{dp}\) 的思维点。 然后你直接无脑李超线段树就做完了,不求最优,但求好写。 注意 \(h\) 值域为 \([0,
阅读全文
摘要:原题链接 可以暴力枚举 \(a,b\),然后 \(c\in [2b-a,n]\),找区间最大值即可。 对于我们选择的 \(a,b\) 间,若能在 \((a,b)\) 中找到某个下标 \(i\),满足 \(h_i\ge h_a\) 或 \(h_i\ge h_b\),那么选择 \(i\) 是更优的。 理
阅读全文
摘要:T1: 原题链接 T2: 原题链接 不难发现,设最终每段黑白比值为 \(C\),则 \(\frac{\sum W}{\sum B}=C\),我们可以直接算出每段的黑白格子比值为多少。 接下来考虑如何让划分区间最多: 结论: 一定是恰好满足 \(\frac{W}{B}=C\) 的最小的区间。 证明:
阅读全文
摘要:原题链接 比较简单的 \(\text{dp}\) 题。 看见题目的 \(\sum w_ih_i\) 式子,很容易想到排序不等式,所以我们先对 \(w,h\) 排序,然后分情况讨论。 若 \(w_i,h_i\) 对应的编号不相等,肯定是把它们配对。 若 \(w_i,h_i\) 对应的编号相等,考虑这样
阅读全文
摘要:T1:P1725 琪露诺 简单 \(\text{dp}\) 题,状态转移很好写:\(f_i=\max_{j=i-R}^{i-L}f_j+a_i\)。 暴力做是 \(O(n^2)\) 的,考虑优化。 发现每次查找一个区间内的 \(f\) 最大值,直接上线段树即可,时间复杂度 \(O(nlogn)\)。
阅读全文

浙公网安备 33010602011771号