04 2021 档案
摘要:题意:n根杆子,每根杆子由一定数量的砖组成,现要使这些砖一样高,添加一块砖花费A,去掉一块砖花费B,移动一块砖花费C,求最小花费 通过观察可知最终所有杆子的高度与花费的关系是个凸函数,三分高度找极值点即可(其实就是二分斜率) 1 #include<bits/stdc++.h> 2 using nam
阅读全文
摘要:傻逼题,能不能AC取决于眼力够不够好能看到“询问次数不超过2000”这一限制 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef double db; 5 const int N=200
阅读全文
摘要:题意:01序列,区间反转,版本回退,求和 主席树(可持久化线段树)裸题,貌似我还没有写过带pushdown操作的主席树板子,就先贴一个在这里 注意在修改和pushdown操作的时候要新建结点 1 #include<bits/stdc++.h> 2 using namespace std; 3 typ
阅读全文
摘要:题意:求无向图从起点到终点最多停留k次的最短路 设d[i][j]表示走了i步后到达点j的最小代价,看似最短路,实则dp,因为求解过程中i是递增的,不存在环,直接递推求解即可 什么?你说最短路也属于dp?那没事了 1 #include<bits/stdc++.h> 2 using namespace
阅读全文
摘要:题意:多组询问,每组询问求无向图中两个结点间最小瓶颈路的最大边权 算是带权并查集的一道板子题吧,首先用kruskal算法构建最小生成树,构建过程中并查集按秩合并,同时每个点记录一个cost值,表示把该点与父亲结点合并所需的最小代价,那么两点间最小瓶颈路的最大边权就是带权并查集上两点之间路径的最大边权
阅读全文
摘要:题目链接 蓝书上的例题,题意是给定一个有向图,边带权,每次操作可以选择一个点,把以该点为终点的边权都-1,以该点为起点的边权都+1,要使得最小的边权最大,问最大值是多少 题解是转化成差分约束问题求解,但实际通过观察可发现,每个环的边权是固定的,因此相当于求平均值最小的环,二分+判负环即可 SPFA判
阅读全文
摘要:有这样一类问题(例:loj121,122),要求在无向图中实现如下操作: 1.增加一条边 2.删除一条边 3.询问两点是否连通 这类问题有离线做法和在线做法,两者的思想完全不同 离线做法的思想是,考虑到每一条边存在的时间范围是一个区间,在线段树对应的区间打上标记,然后从根节点自顶向下dfs,每访问一
阅读全文
摘要:题目链接 Floyed动态加点, 每加一个点,求经过这个点的最小环,取min即可 注意inf相加溢出 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef double db; 5 con
阅读全文
摘要:题目链接 题意:求无向图最小环(n<=8000,m<=4000) 动态把边加进去跑Dij,在加入一条边(u,v,c)之前,先求出mindis(u,v),更新答案ans=min(ans,mindis(u,v)+c),复杂度$O(m^2logn)$ 1 #include<bits/stdc++.h> 2
阅读全文
摘要:题意:求有向图平均值最小环 看到平均值就想到分数规划问题,解法是二分答案,假设存在一个平均值小于等于x的环,那么把每条边的权值减去x,然后判断是否存在负环即可。Floyed就可以判负环,spfa也行 1 #include<bits/stdc++.h> 2 using namespace std; 3
阅读全文
摘要:题意:求无向图去掉每一条边后的两两最短路之和 非标解 之前见过去掉每个点的两两最短路的问题,用的区间分治+Floyed,我想着边的也可以试一试,结果就过了。。。 设g(l,r)表示除了[l,r]区间内的边都加上了的情况下的两两最短路矩阵,那么有递推式$\left\{\begin{matrix}\be
阅读全文
摘要:题目链接 留坑,题解之后再补 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef double db; 5 const int N=3e5+10; 6 struct E { 7 int
阅读全文
摘要:之前的解法 其实二分图染色问题可以看成2-SAT问题的一个特例,只需要稍微修改一下板子,在对每个连通块dfs的时候每个点黑白都试一下,取个最小值即可,因为二分图染色比较特殊,各个连通块相互独立,因此不存在回溯的问题(一般情况下2-SAT问题对每个点的黑白染色都分别判断的话需要回溯) 1 #inclu
阅读全文
摘要:题目链接 题意:有n个决议和m个人,每个人给至多4个方案投票,问是否存在一种方案使每个人超过一半的投票生效 当一个人投票数小于等于2时,他的每一票都必须生效,否则至多有一票不生效,“至多有一票不生效”等价于“任意两票不能同时不生效”,这样就转化成了一个2-SAT问题 题目还要求输出每一种方案的所有可
阅读全文

浙公网安备 33010602011771号