随笔分类 - 图论
摘要:t1灾难 给一个食物网 如果一个生物吃的所有东西都灭绝了 它也跟着灭绝 求每个生物灭绝时跟着灭绝的生物数量 支配树裸题,我们先拓扑排序,然后建立一棵树满足一个点灭绝时,有且仅有它的子树跟着灭绝 考虑如何建立这棵支配树 我们可以考虑先建立一个假想的根节点$root$,让所有“生产者”都吃$root$
阅读全文
摘要:蒟蒻Ez3real冬令营爆炸之后滚回来更新blog... 我们看一道题 bzoj3924 ZJOI2015D1T1 幻想乡战略游戏 给一棵$n$个点的树$(n \leqslant 150000)$ 点上有点权 边上有边权 每个点度数不大于$20$ 你需要放置一个补给站 补给站供给某个点的代价等于它们
阅读全文
摘要:树套树Day2暂且搁置...因为Day1的题我各种不会做... 唯一过了一道还是整体二分过的... 我们来一点愉快的算法,先不考虑数据结构这种骚东西了 毕竟还在发烧,就先码码这几天在搞的点分治吧 hx你又挖一个大坑赶紧去填树套树 点分治用于解决“树上路径点权统计问题” ...讲不太清楚,大家可以直接
阅读全文
摘要:考场上未曾光顾的一道题... 结果回来20min想出方程1hA掉了 我是真的蒻,Orz机房里其他的各位dalao 图上dp 两遍spfa(我写的dijkstra)判断一个点对答案的贡献 然后随便dp一下 零环在dp的时候单独处理一下,如果访问过一个点又访问回来了且目前超过的长度没变就是零环 然后就轻
阅读全文
摘要:听说zkw比KM跑稠密图快很多 过来学习一个zkw继线段树后又一神作——zkw费用流 (虽然zkw线段树我还只会打模板orz) 其实就是利用了最短路的性质 dis[u]<=val(u,v)+dis[v] 当u在最短路上的时候取等号 修改dis值,即是将所有在增广路上的点u的dis加上一个delt,
阅读全文
摘要:OrzCDQ您太强辣 #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define inf 0x7fffffff #define ll long long usi
阅读全文
摘要:#include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int maxn=50010;
阅读全文
摘要:“Tarjan有三种算法 你们知道吗”——Tar乙己 void tarjan(int x) { low[x]=dfn[x]=++ind; q[++top]=x;mark[x]=1; for(int i=last[x];i;i=e[i].next) if(!dfn[e[i].to]) { tarjan
阅读全文
摘要:知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴。 ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1。 由于菜肴之间口味搭配的问题,某些菜肴必须在另一些菜肴之前制作,具体的,一共有 M 条形如”i 号菜肴'必须'先于 j
阅读全文
摘要:#include #include #include #include #include #include #include using namespace std; const int maxn=50010; int first[maxn],to[maxn],next[maxn],cnt; inline int read() { int x=0,f=1; char ch=get...
阅读全文
摘要:Do u like 玩♂游♂戏? lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。游戏进行到最后,lxhgww遇到了终极boss,这个终极b
阅读全文
摘要:题意: 给定一棵树上的边和点权 改动点权使得每个父节点u容量为子节点容量的d[u](子节点个数)倍 考察点: 1.这是一道语文题 2.点权很大 直接算会爆 有一种优化办法:取log(醉 这是什么优化) 3.确定一个点的权值 整棵树的权值都可以确定 4.由3.可以得到一个脑洞很大的算法:算出每个点不变
阅读全文
摘要:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 n<=1000000 发现当根从某个位置移到它的一个子树时只要O1的时间就可以果断得出ans 所以大概就一个dfs完事 #include<iostream> #include<cstdlib> #include<algori
阅读全文
摘要:给定一个无向有权图,首先一个最小生成树 MST,从 MST 中选取一个度数大于 1 的点 作为根 K,使每颗子树及该子树到根的边权之和方差最小。输出 K 和最小方差的值。 对于60%的数据:3 ≤ N ≤ 2,000,N-1 ≤ M ≤ 50,000 对于100%的数据:3 ≤ N ≤ 40,000
阅读全文
摘要:#include #include #include #include #include #include using namespace std;int match[maxn],link[maxn][maxn],used[maxn],ans; bool find(int u) { memset(used,0,sizeof(used)); /*for(int i=first[u]...
阅读全文
摘要:小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择 矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即
阅读全文
摘要:#include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cmath> #include<cstring> using namespace std; struct edge { int u,v
阅读全文
摘要:给出一系列任务,每个任务可以在机器A的某个模式,或者在机器B的某个模式下完成。机器A和B每切换一次模式需要重启一次。问完成这些任务,最少需要重启机器多少次? 把任务看作边 “重启”操作看作点 这道题就是一个裸的二分图最小点覆盖 然后呢 最小点覆盖 NP完全问题 艹 然后呢 二分图中 最小点覆盖等于最
阅读全文
摘要:匈牙利算法裸题 #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cmath> #include<cstring> using namespace std; const int N =
阅读全文

浙公网安备 33010602011771号