First
文章平均质量分 93
Zbr162
滑天下之大稽
展开
-
乘方 [二分答案, 容斥]
#include<bits/stdc++.h>#define reg registertypedef long long ll;int read(){ char c; int s = 0, flag = 1; while((c=getchar()) && !isdigit(c)) ...原创 2019-11-13 20:16:59 · 294 阅读 · 0 评论 -
交集 [背包撤销, 动态规划]
交集交集交集正解部分\color{red}{正解部分}正解部分若路径并为 P(u,v)P(u, v)P(u,v), 形态如上图所示, 则 答案 等于以 uuu 为根的子树中选择 kkk 个起点的方案数 乘上 以 vvv 为根的子树中选择 kkk 个终点的方案数, 且要满足 kkk 个点 两两 都分别以 uuu, vvv 为 lcalcalca设 F[i,j]F[i, j]F[i,j] ...原创 2019-11-11 21:31:50 · 354 阅读 · 0 评论 -
魔法 [动态规划]
魔法魔法魔法正解部分\color{red}{正解部分}正解部分设 F[i]F[i]F[i] 表示最后一刀切在 iii 位置, 右端点小于等于 iii 的所有区间都满足条件的最小花费,状态转移, 在 iii 位置切一刀, F[i]=min(F[l右端点小于i的区间中右端点最大的区间的左端点 ... i−1]+A[i])F[i] = \min(F[l_{右端点小于i的...原创 2019-11-11 16:59:25 · 302 阅读 · 0 评论 -
取石子 II [期望]
/# 取石子II取石子 II取石子II/## 正解部分\color{red}{正解部分}正解部分取石子 111 传送门 .点开传送门, 根据期望的线性, 答案可以当做每堆石子被取的期望次数和,又因为 aia_iai 与 a1a_1a1 两堆石子是相互独立的, 因此可以单独计算贡献,现在计算 aia_iai, a1a_1a1 两堆石子的贡献,将 (a1,ai)(a_1,...原创 2019-11-10 20:40:53 · 171 阅读 · 0 评论 -
取石子 I [期望]
取石子取石子取石子正解部分\color{red}{正解部分}正解部分取走其它堆石子 会对 取走第一堆石子的时刻 造成影响,所以设 xix_ixi 表示第 iii 堆石子在 111 前面取走 这个事件, E(x)E(x)E(x) 发生这个事件的期望时间,由于取一次就可以取完, 于是期望时间的值 等于 概率,则 ans=E(x1+x2+x3+...+xn)=1+E(x2)+E(x3)...原创 2019-11-10 10:58:58 · 166 阅读 · 0 评论 -
P3953 逛公园 [dp]
1原创 2019-11-07 12:00:08 · 143 阅读 · 0 评论 -
CF600E Lomsat gelral [dsu on tree]
/# Lomsat gelralLomsat\ gelralLomsat gelral题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分dsu on treedsu\ on\ treedsu on tree, 每次将 重儿子 的信息继承给父亲, 轻儿子 暴力扫, 时间复杂度 O(NlogN)O(N\lo...原创 2019-11-06 19:00:45 · 132 阅读 · 0 评论 -
矩形面积交 [区间树状数组, 扫描线]
/# 矩形面积交矩形面积交矩形面积交/## 正解部分\color{red}{正解部分}正解部分每个矩形提出其 左边 和 右边 , 每条边都使用三元组 (l,r,flag,type)(l, r, flag, type)(l,r,flag,type)表示, 放置对应的 xxx 坐标上,使用一条 扫描线 从左向右扫, 如下图计算 橙色询问矩形 的答案,计算 222 区间, 考虑先计算 ...原创 2019-11-05 19:30:16 · 177 阅读 · 0 评论 -
[数据删除] 的树 [树形dp]
子树问题子树问题子树问题正解部分\color{red}{正解部分}正解部分设 F[i,j]F[i, j]F[i,j] 表示 iii 个节点, 深度不超过 jjj 的构成树的方案数, 枚举根节点编号 次大 子树大小转移,F[i,j]=∑k=1iF[k,j−1]×F[i−k,j]×(i−2k−1)F[i, j] = \sum\limits_{k=1}^{i} F[k, j-1] \time...原创 2019-11-03 18:35:17 · 182 阅读 · 0 评论 -
背包问题 [二维偏序, 树状数组]
背包问题背包问题背包问题正解部分\color{red}{正解部分}正解部分二维偏序问题,将所 有点 按照 vvv 为第一关键字, www 为第二关键字 从大到小 排序,从前往后扫, 离散化坐标, 使用 树状数组 维护 yyy 的 前缀最大值, 记为 max_curmax\_curmax_cur对于背包的限制, 将背包按容量 从大到小 排序, 维护一个指针从左往右根据物品的容量往右移...原创 2019-11-02 15:38:40 · 196 阅读 · 0 评论 -
P3232 [HNOI2013]游走 [高斯消元]
/# 游走游走游走题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分题目要求走过的 边 编号和期望最小,先求出 点 的期望值 f[i]f[i]f[i], 走过一条边 u,vu, vu,v 的期望值即为 f[u]/du[u]+f[v]/du[v]f[u]/du[u] + f[v]/du[v]f[u]/du[u]+f[v]/du[v], 最后将期望值大的边赋予较小的...原创 2019-11-02 14:20:01 · 119 阅读 · 0 评论 -
BZOJ4919 大根堆 [树上LIS]
/# $$$$/## 正解部分\color{red}{正解部分}正解部分/## 实现部分\color{red}{实现部分}实现部分原创 2019-11-01 21:53:05 · 294 阅读 · 0 评论 -
红绿 [线段树分治, 并查集]
// Create time: 2019-10-06 16:11:51 - 17:30:00, 18:10:03 - #include <algorithm>#include <iostream>#include <cstdio>#include <vector>using namespace std;#define N 1000...原创 2019-11-01 21:20:20 · 138 阅读 · 0 评论 -
[USACO17FEB] Why Did the Cow Cross the Road II P [树状数组优化dp]
/# Why Did the Cow Cross the RoadWhy\ Did\ the\ Cow\ Cross\ the\ RoadWhy Did the Cow Cross the Road题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分...原创 2019-11-01 11:41:09 · 171 阅读 · 0 评论 -
中等的字符串 [Ac自动机, 矩阵乘法(max)]
中等的字符串中等的字符串中等的字符串正解部分\color{red}{正解部分}正解部分建出 AcAcAc 自动机, 在自动机上 dpdpdp,设 F[i,j]F[i, j]F[i,j] 表示 iii 节点走 jjj 步所能得到的 最大值,则 F[i,j]=max(F[to,j−1]+wto)F[i, j] = \max(F[to, j-1] + w_{to})F[i,j]=max(...原创 2019-10-31 21:59:00 · 211 阅读 · 0 评论 -
战胜序列 [性质dp]
战胜序列战胜序列战胜序列正解部分\color{red}{正解部分}正解部分设 F[i,a,b,c]F[i, a, b, c]F[i,a,b,c] 表示前 iii 项 , 分别以 0,1,20,1,20,1,2 为结尾的 最长战胜序列 长度为 a,b,ca, b, ca,b,c 的方案数,枚举状态, O(3)O(3)O(3) 转移, 总复杂度 O(N4)O(N^4)O(N4) .可以发...原创 2019-10-30 12:17:49 · 186 阅读 · 1 评论 -
BZOJ5281 [Usaco2018 Open]Talent Show [0/1分数规划, 背包]
Talent ShowTalent\ ShowTalent Show题目描述见链接 .正解部分\color{red}{正解部分}正解部分0/10/10/1 分数规划,二分出答案 midmidmid, 要满足 ∑ti∑wi≤mid→mid×∑wi+∑ti≥0→∑(mid×wi+ti)≥0\frac{\sum t_i}{\sum w_i} \le mid \rightar...原创 2019-10-29 22:03:36 · 139 阅读 · 0 评论 -
三只企鹅 [重链剖分]
三只企鹅三只企鹅三只企鹅正解部分\color{red}{正解部分}正解部分若对 {pi}\{p_i\}{pi} 进行了修改, 总共修改了 kkk 次, 此时若询问 xxx, 则答案为 ans=∑deppi+kdepx−2∑deplca(pi,x)ans = \sum dep_{p_i} + k dep_x - 2\sum dep_{lca(p_i,x)}ans=∑deppi+kdep...原创 2019-10-28 22:08:05 · 183 阅读 · 0 评论 -
或与异或 [背包dp]
或与异或或与异或或与异或给出一个序列 a1,a2,a3...ana_1, a_2, a_3...a_na1,a2,a3...an, 求 选取任意个数使得其 异或起来的值 等于 或起来的值 的⽅案数 .n≤50,ai≤213n \le 50, a_i \le 2^{13}n≤50,ai≤213正解部分\color{red}{正解部分}正解部分考虑 O(213)O(2^{13})O...原创 2019-10-28 20:11:08 · 583 阅读 · 0 评论 -
BZOJ1854 [Scoi2010]游戏 [二分图匹配]
游戏游戏游戏题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分由于每个武器只能选择一种属性, 可以想到 二分图,对于武器 iii, xi,yix_i, y_ixi,yi 向 iii 连边, 这可以保证每个武器只能选择一个属性的条件,按属性从小到大进行 二分图匹配, 可以保证攻击力连续递增的条件 .实现部分\color{red}{实现部分}...原创 2019-10-27 21:23:39 · 145 阅读 · 0 评论 -
BZOJ1597 [Usaco2008 Mar]土地购买 [斜率优化]
/# 土地购买土地购买土地购买题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分将 矩形的 长 作为 xxx, 矩形的 宽 作为 yyy, 放到 平面直角坐标系 中,题目转化 为使用 最小的矩阵面积和 覆盖所有点,可以发现当矩形 a,ba, ba,b 满足 a.x≤b.xa.x \le b.xa.x≤b.x, a.y≤b.ya.y \le b.ya.y≤b.y...原创 2019-10-27 20:33:32 · 128 阅读 · 0 评论 -
异或子段 [check]
异或子段异或子段异或子段正解部分\color{red}{正解部分}正解部分直接设 F[i,j]F[i, j]F[i,j] 表示前 iii 位分为 jjj 段的最大答案不可行, 因为其不满足子结构最优的性质 .按位处理, 从高到低 在保证高位尽量取得最大值的前提下检查较低位可不可以取 111,现在 checkcheckcheck 当前位填 111 是否合法, 只需将序列分为若干段, ...原创 2019-10-27 15:35:20 · 383 阅读 · 0 评论 -
区间 [动态规划]
/# 区间区间区间/## 正解部分\color{red}{正解部分}正解部分/## 实现部分\color{red}{实现部分}实现部分原创 2019-10-27 15:27:17 · 167 阅读 · 0 评论 -
P3435 [POI2006]OKR-Periods of Words [Kmp, next数组]
/# OKR−Periods of WordsOKR-Periods\ of\ WordsOKR−Periods of Words题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分题目转化 为: 对每个前缀串, 求出其 最短公共前缀后缀, 答案即为 总长度 −-− 公共长度 .自然而然地想到 KmpKmpKmp 的 nex...原创 2019-10-26 14:58:21 · 143 阅读 · 0 评论 -
没有名字 [整除分块优化dp]
#include<bits/stdc++.h>using namespace std;#define MOD 1000000007#define M 100005#define ll long longint n,m,ans,cnt;int L[M],R[M];ll f[105][M],g[105][M];int main(){ cin >> n ...原创 2019-10-25 20:30:00 · 252 阅读 · 0 评论 -
CF1204E Natasha, Sasha and the Prefix Sums [动态规划]
/# Natasha, Sasha and the Prefix SumsNatasha,\ Sasha\ and\ the\ Prefix\ SumsNatasha, Sasha and the Prefix Sums题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部...原创 2019-10-25 19:11:08 · 150 阅读 · 0 评论 -
网格染色 [组合计数]
网格染色网格染色网格染色N×MN \times MN×M 的网格图, 给任意多个网格染色, 计算 使得每行每列至少有一个染色网格 的 染色方案数 .N,M≤106N, M \le 10^6N,M≤106正解部分\color{red}{正解部分}正解部分答案 === 每 列 都合法的总方案数 −-− 列 合法前提下 行 不合法的方案数 .每 列 都合法的总方案数 === (2n−1)m(...原创 2019-10-25 16:43:07 · 676 阅读 · 0 评论 -
替身使者 [区间dp]
替身使者替身使者替身使者正解部分\color{red}{正解部分}正解部分将 g(x)g(x)g(x) 画在坐标系中, 可以观察到其增速是十分快的, 且可以证明若一个人可以走到人多的地方, 一定是要走到的 .设 F[l,r]F[l, r]F[l,r] 表示不能走出区间 [l,r][l, r][l,r] 的所有人对答案的 最大 贡献, 枚举聚集点 kkk, 使得所有能走到 kkk 的人全都...原创 2019-10-23 22:12:56 · 325 阅读 · 0 评论 -
P3158 [CQOI2011]放棋子 [动态规划]
/# 放棋子放棋子放棋子题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分设 F[i,j,k]F[i, j, k]F[i,j,k] 表示/## 实现部分\color{red}{实现部分}实现部分...原创 2019-10-23 21:13:10 · 142 阅读 · 0 评论 -
博士之时 [分类讨论, 计数]
博士之时博士之时博士之时正解部分\color{red}{正解部分}正解部分由于0≤M1,M2≤N20 \le M_1, M_2 \le \frac{N}{2}0≤M1,M2≤2N两个点之间至多有 111 条 相同的边每个点至多链出 111 条 同种边因此每个点最多向外链出 222 条 不同的边, 进而得出 图中仅有 偶环 或 链, 且是 0,10,10,1 相间的 ....原创 2019-10-22 22:05:36 · 190 阅读 · 0 评论 -
曾有两次 [最短路树]
曾有两次曾有两次曾有两次正解部分\color{red}{正解部分}正解部分以 111 号节点 为 根节点 建立 最短路树, 一个节点删边时一定是删去 父边,考虑 删去父边后当前节点 uuu 到 111 的最短路长是什么,一定是 u→u子树内节点 v −非树边→w→1u \rightarrow u子树内节点 \ v\ -^{非树边}\rightarrow w \rig...原创 2019-10-22 20:21:43 · 211 阅读 · 0 评论 -
序列 [线段树]
#include<bits/stdc++.h>#define reg registerint read(){ char c; int s = 0, flag = 1; while((c=getchar()) && !isdigit(c)) if(c == '-'){ flag = ...原创 2019-10-22 16:21:12 · 204 阅读 · 0 评论 -
城镇 [树的直径, 启发式合并]
/# 城镇城镇城镇 正解部分\color{red}{正解部分}正解部分题目的本质就是不断地合并联通块, 动态维护直径,动态维护直径, 这里 有道类似的题目假设现在要合并两个联通块, 且这两个联通块的直径端点已知, 设为 a,b,c,da, b, c, da,b,c,d则新的直径只可能是 (a,b),(a,c),(a,d),(b,c),(b,d),(c,d)(a, b), (a, c...原创 2019-10-21 20:59:41 · 186 阅读 · 0 评论 -
找钱 [动态规划, 背包]
找钱找钱找钱/## 最初想法\color{grey}{最初想法}最初想法最后一条限制不好处理, 于是关于 小 LLL 的 背包信息 搜出来, 售货员 的背包信息 dpdpdp,但是忘记 记忆化 了, 丢了 50pts50pts50pts …505ms505 ms505ms AC 代码 ↓\downarrow↓#include<bits/stdc++.h>#define...原创 2019-10-21 20:14:42 · 158 阅读 · 0 评论 -
P3411 序列变换 [单调队列]
/# 序列变换序列变换序列变换题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分题目转化 为: 求数列中离散化后 最长连续不间断子序列 的长度 lenlenlen, ans=N−lenans = N-lenans=N−len .子序列需要满足 333 个条件 ↓\downarrow↓编号 单调递增 .子序列中的值 连续 .子序列中的值 单调不减 .可...原创 2019-10-20 16:21:16 · 194 阅读 · 0 评论 -
送分题 [组合计数]
送分题送分题送分题正解部分\color{red}{正解部分}正解部分考虑每一位对答案的贡献, 在长度为 NNN 的序列中, 现在计算第 bitbitbit 位的答案,设 bitbitbit 位 为 111 的数量为 n1n_1n1, 为 000 的数量为 n0n_0n0, x+y=Nx+y = Nx+y=N,对答案的贡献为 (∑i=1n1 [i%2=1](Ni)xi)×(...原创 2019-10-16 16:44:08 · 150 阅读 · 0 评论 -
P3724 [AH2017/HNOI2017]大佬 [模拟(?), 单调性]
/# 大佬大佬大佬题目描述见链接 ./## 正解部分\color{red}{正解部分}正解部分目标是 活着 使大佬自信心变为 000,首先可以发现 一组进攻 在固定的 天数 内, 其产生的效果是相同的,而 能进攻的天数 越多, 其 “胜算” 越大, 所以考虑先求出 最大活动天数,这可以使用 dpdpdp 求解, 设 F[i,j]F[i, j]F[i,j] 表示前 iii 天, 第 i...原创 2019-10-15 21:32:46 · 178 阅读 · 0 评论 -
凸多边形 [动态规划, 计数]
#include<bits/stdc++.h>using namespace std;#define reg register#define maxn 1005#define mo 1000000007inline int read(){ int x=0;char ch=getchar(); while(!isdigit(ch))ch=getchar(); whi...原创 2019-10-14 17:25:06 · 353 阅读 · 0 评论 -
鲳数 [数位dp]
/# 鲳数鲳数鲳数/## 正解部分\color{red}{正解部分}正解部分设 从低到高 第 len+1len+1len+1 位的数字为 xxx, 考虑 xxx 与后面 lenlenlen 位组成逆序对的贡献,先考虑 x=−1x=-1x=−1的贡献, 为 len×10lenlen \times 10^{len}len×10len, 其中每个数字出现的次数都相同,再考虑 x∈[0,9]x...原创 2019-10-11 21:48:50 · 222 阅读 · 0 评论 -
神奇的集合 [set维护区间, 线段树]
/# 神奇的集合神奇的集合神奇的集合 /## 正解部分\color{red}{正解部分}正解部分因为 1≤x≤n1 \le x \le n1≤x≤n, 所以可以对每个 xxx 使用 std::set< std::pair<int, int> > 存储其出现的区间, 线段树 维护答案,对 111 操作, 如图所示, 黄色为修改的区间, 黑色为原有的 xxx 出现...原创 2019-09-21 20:06:33 · 414 阅读 · 0 评论