该文被密码保护。 阅读全文
posted @ 2020-09-15 12:47 hulean 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Link 我们可以将同一颜色的连通块缩成点。 然后我们就得到了一棵黑白相间的树。 树的直径的一半即为答案 ps:树的直径,先从随便一个点出发找到最远的点,再从最远的点走到这个点的最远的点,即为树的直径 #include <bits/stdc++.h> using namespace std ; co 阅读全文
posted @ 2020-11-01 21:22 hulean 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题目大意 有$n$个数,现在把它们划分成若干段,使存在一段的数的个数不为给出的$k$个数中的任意一个。问有多少种划分方式 \(n\le10^{18}\) 给出的$k$个数任意一个保证不超过$100$ 分析 一个很明显的做法:先求出没有限制条件的总方案数 为$C1_+C2_+C3_+\dots+C_+ 阅读全文
posted @ 2020-09-10 19:11 hulean 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 题意 有$N$项任务,每项任务有一个截止时间$d$,一个完成所需时间$b$,和一个参数$a$,对于每一个任务,若你给他$x$元钱,他将会在$b_i-a_i*x$完成任务,现求出每个任务都必须在规定时间完成的最小花费 思路 贪心,按$d$从小到大排序,如果能完成就不必花钱,不然就在这个之前的任务中选一 阅读全文
posted @ 2020-09-06 20:41 hulean 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 参考博文 题目大意: 有一棵$n$个节点的有根树,标号为$1-n$,你需要维护以下三种操作 1.给定一个点$v$,将整颗树的根变为$v$ 2.给定两个点$u$, \(v\),将$lca(u, v)$所在的子树都加上$x$ 3.给定一个点$v$,你需要回答以v所在的子树的权值和 分析: 我们要写一个数 阅读全文
posted @ 2020-08-23 17:17 hulean 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目大意 给定一个$n$个点的数,有$m$个询问,每次寻味两点之间最短距离上第$k$小的点权 思路 树上主席树。 学习了序列上的主席树之后,会发现主席树其实是一种前缀操作(在每个结点都建立一颗线段树)。因此这题我们也可以这样做,我们定义$T[u]$表示从根节点到到第$u$号节点的前缀主席树 所以包含 阅读全文
posted @ 2020-08-20 22:05 hulean 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目大意 给一张无向图,每个点有一个油价$a_i$,表示每升油的单价。每条道路连接两个点,且有个权值$w_i$,表示开过这条路所消耗的油量。现在有$q$个询问,每个询问给出一个油箱容量$c$,一个起始点和一个终止点,要求出从起始点到终止点最少要消费多少钱。初始油箱为空。 分析 在状态中添加一维,\( 阅读全文
posted @ 2020-08-15 15:35 hulean 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 【洪水】题解 题目大意 有$n$个水库,每个水库有一个容量上限$a_i$,第$i$个水库到第$i+1$个水库有一个流量上限$b_i$,最后一个水库流入大海。且每秒会有$F$流入第$1$个水库,问水库多久会溢出,不会溢出输出$-1$ 对于n小于4的数据,直接模拟即可 对于所有水库容量相同,河道一样宽的 阅读全文
posted @ 2020-08-12 10:26 hulean 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目大意 给你一个有向图,求出图中环的平均值的最小值 环的平均值定义:环中所有的边权和/环中点数量 思路 看到使平均值最大或最小,可以考虑分数规划 分数规划用于解决一些要让平均值最大或最小的问题 具体就是二分答案$K$ \(\frac{x_1+x_2+x_3+\dots+x_n}{n}\ge k\L 阅读全文
posted @ 2020-08-10 14:41 hulean 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 【题目大意】 大致题意就是,你的初始坐标为$x$,你要去数轴上的$n$个点,问你到达所有点的时间总和最小是多少。 直接贪心肯定不行,所以考虑$DP$ 先把坐标离散(也就是预处理两点距离$dis[i][j]=abs(a[i]−a[j])$) 接下来考虑如何dp。 关注到一个性质,如果到目前为止,奶牛吃 阅读全文
posted @ 2020-08-09 15:57 hulean 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 我们考虑分治一下 按$x$坐标排序 然后对于每一段的两部分都按$y$排序 左右两边都维护一个单调栈 然后考虑右边对左边的贡献就行了 #include <bits/stdc++.h> #define int long long using namespace std ; const int MAXN 阅读全文
posted @ 2020-08-09 12:56 hulean 阅读(135) 评论(0) 推荐(0) 编辑