09 2020 档案

摘要:题目大意 动态维护数列中大于等于某个数的极长连续段的个数。 思路 我们考虑每段的开头,记为 i,高度为 ai 那么此时水淹的高度必然满足 ai1<xai 这样的 x 在此处会给答案贡献加一 那么我们考虑所有的这种位置,开一棵权值线段树,对于 阅读全文
posted @ 2020-09-19 14:48 leiyuanze 阅读(119) 评论(0) 推荐(0) 编辑
摘要:题目大意 求形如 i=1n|aix+bi| 的最小值 思路 我们显然可以先把系数 a 提出来 于是就成了 i=1n|ai|·|x+biai| 对于任意一个 i,它的零点在 \(-\frac{b_i 阅读全文
posted @ 2020-09-19 14:40 leiyuanze 阅读(117) 评论(0) 推荐(0) 编辑
摘要:解析 首先我们得明确:分割的顺序是无所谓的 不然我们很难列出转移方程 那为什么呢? 假若当前我们把某段序列分成三段,依次记为 x,y,z,每段和记为 sx,sy,sz 那么如果我们先分出 x,y ,那么 \(ans = s_x \times (s_y+s_z) 阅读全文
posted @ 2020-09-18 13:22 leiyuanze 阅读(146) 评论(0) 推荐(0) 编辑
摘要:解析 转移方程很容易推:fi=max(fj+a(sisj)2+b(sisj)+c) 然后当 j>k 时,如果 j 更优 那么 \(f_j + a * (s_i - s_j)^2 + b * (s_i - s_j) + c 阅读全文
posted @ 2020-09-17 12:51 leiyuanze 阅读(155) 评论(0) 推荐(0) 编辑
摘要:解析 预算费用,和Luogu P2365 任务安排一样 得到了同样的式子 但是我们发现 sumti 可能小于零 也就是说我们需要的斜率可能不再具有单调性 所以我们要维护整个凸壳 那么怎么找到最佳的决策点呢? 其实就是 slope(m,m1)<sumti 且 \(slope( 阅读全文
posted @ 2020-09-16 19:40 leiyuanze 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题目 思路 呵呵,正解并不是什么神奇的方法 而是最原始的最粗暴的最有用的最万能的————搜索 依题模拟即可 Code #include<cstdio> #include<cstring> using namespace std; const int N = 35; int n , m , m 阅读全文
posted @ 2020-09-12 16:37 leiyuanze 阅读(144) 评论(0) 推荐(0) 编辑
摘要:题目大意 判断给定 n 个矩形将平面分成了几个区域。 1n50 坐标 x,y 均满足 0x,y106 思路 注意到 n 很小 所以我们直接离散后暴力给坐标系加数表示矩阵的覆盖和重叠 答案就是连通块的个数 注意细节 \( 阅读全文
posted @ 2020-09-12 15:50 leiyuanze 阅读(104) 评论(0) 推荐(0) 编辑
摘要:题目大意 没什么,就是把原本汉诺塔的三根柱子改成四根,求最少步数 其中 1n1000 思路 设 fi 表示四根柱子中把其中一根 i 个移到另一根的最小步数 gi 类似,改成三根柱子 那么 \(f_i = \min(g_j * 2 + f_{ 阅读全文
posted @ 2020-09-12 15:43 leiyuanze 阅读(144) 评论(0) 推荐(0) 编辑
摘要:[SHOI2006]仙人掌 简要解析 其实很简单 只要普通树形 dp 就行了 fx 表示 x 能向下延深的最大距离,vx 的儿子 当一个点不属于任何环时 fx=max(fv+1) 这是更新 \(ans = \max(ans , f 阅读全文
posted @ 2020-09-09 20:18 leiyuanze 阅读(116) 评论(0) 推荐(0) 编辑
摘要:题面 思路 考场想到 tarjan 缩点 然而忘了缩点怎么打 于是甩了个暴力 改题时学了个圆方树 发现挺好用 于是······注意重边 Code #include<cstdio> #include<iostream> #include<cmath> #include<map> usi 阅读全文
posted @ 2020-09-05 16:41 leiyuanze 阅读(179) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示