随笔分类 - 最(次)小生成树
1
摘要:题意:有N座山,M条道路。山有山高,路有困难值(即点权和边权)。现在Q次询问,每次给出(v,p),让求从v出发,只能结果边权<=p的边,问能够到达的山中,第K高的高度(从大到小排序)。 思路:显然,最小化最大边权,需要先得到生成树,三种思路。 第一种:离线+启发式合并,这里先不管。 第二种:Krus
阅读全文
摘要:题意:给你n个寺庙,m个村庄,p条路,现在你要在这n+m个位置中选出若干个位置打井,每个位置打井的费用会告诉你,同时p条路也有修建费用,现在每个寺庙都住着一个和尚,问你最小的费用让这n个和尚都能喝上水。 思路:可以对照之前做的MST题目(https://www.cnblogs.com/hua-don
阅读全文
摘要:题意:给定N点M边的无向连通图,每条边有两个权值(g,s)。 给定G,S。 让你给出一组(g0,s0)使得图中仅留下g<=g0, s<=s0的边之后,依然连通,并求Gg0+Ss0的最小值。 n<=200,m<=50000。 思路:枚举g0,求最小的s0,满足生成MST。 把边按g排序,一条边一条边的
阅读全文
摘要:题意:有N个牧场,每个牧场修水井花费Wi,连接牧场花费Pij,问最小花费,使得每个牧场要么有水井,要么和有水井的牧场有通道。 思路:加一个格外的节点O,连接O表示修井,边权是修井的费用。 那么这N+1个点求最MST即可。 刘同学想到的解法: 先找到修井费用最低的的牧场,然后和上面一样,由于最低的那个
阅读全文
摘要:题意: 给定长度为N的海滩,然后有M做防御塔,给出每座塔的位置Xi,到海岸的距离Yi。 求防御塔上最小观测半径Ri,使得海滩被封锁。 思路:要使左边界和右边界连通。 很nice,可以二分+并查集做。 可以最小生成树做。 可以最短路做。 MST代码: #include<bits/stdc++.h> #
阅读全文
摘要:A.数学等式 数据比较小,可以暴力+折半枚举。 #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=2000
阅读全文
摘要:昨天00.35的CF,4点才上床,今天打的昏沉沉的,WA了无数发。 题目还是满漂亮的。 尚有几题待补。 C .Complete Naebbirac's sequence 题意:给定N个数,他们在1到K之间,现在1到K的出现次数的不完全相同的,现在让你进行一次操作,使得他们相同。 操作是加一个数到集合
阅读全文
摘要:B .Battle Royale 题意:给你两个点A,B,以及一个圆S,保证两个点在圆外,且其连线与圆相交,求两点间最短距离。 思路:显然是要分别与圆相切,然后在圆弧想走,直到相交。 那么ans=与圆相交的直线距离+圆弧上的距离; 前者不难求。 后者的话有些抽象,因为不知道怎么取固定角度,但是如果想
阅读全文
摘要:4883: [Lydsy1705月赛]棋盘上的守卫 Description 在一个n*m的棋盘上要放置若干个守卫。对于n行来说,每行必须恰好放置一个横向守卫;同理对于m列来说,每列 必须恰好放置一个纵向守卫。每个位置放置守卫的代价是不一样的,且每个位置最多只能放置一个守卫,一个守卫 不能同时兼顾行列
阅读全文
摘要:4886: [Lydsy1705月赛]叠塔游戏 Description 小Q正在玩一个叠塔的游戏,游戏的目标是叠出尽可能高的塔。在游戏中,一共有n张矩形卡片,其中第i张卡片的 长度为a_i,宽度为b_i。小Q需要把所有卡片按一定顺序叠成一座塔,要求对于任意一个矩形,它的长度要严格大 于它上边的任意一
阅读全文
摘要:For a connected undirected weighted graph G, MST (minimum spanning tree) is a subgraph of G that contains all of G's vertices, is a tree, and sum of i
阅读全文
摘要:题意:给定N点,M边,求添加最少的边使之变为连通图的方案数。 思路:注意题目给出的M边可能带环,即最后生成的不一定是一棵树。但是影响不大。根据矩阵树定理,我们知道生成树的数量=N^(N-2),即点数^(连通数-2)。 此题把已经连通的看成一个整体,就可以得到数量为N^(cnt-2),然后考虑连通块内
阅读全文
摘要:题意:给定N点,M条有向边,满足任意点可以到达任意点。现在叫你保留2*N边,任然满足任意点可以到达任意点,输出删除的边。 思路:从1出发,DFS,得到一颗生成树,有N-1条边。反向建题。还是从1出发,得到一颗生成树,这2N-2条边显然可以满足任意点互通。然后随便选两边即可。 (任意点u->v,至少有
阅读全文
该文被密码保护。
摘要:题意:给定一个无向图,每条边有两个权值ai和bi,从1走到N,设路径上a权的最大值为A,b权的最大值为B,求A+B的最小值。n<=5*1e4. m<=5*1e4。 思路:要生成最小生成树(至少满足1和N连通),我们选择的边如果按A递增,那么易得B递减。现在按a从小到大排序,得到对于每个a,找到对应的
阅读全文
摘要:例一:CodeForces76A: 题意: 给定N点M边的无向连通图,每条边有两个权值(g,s)。 给定G,S。 让你给出一组(g0,s0)使得图中仅留下g<=g0, s<=s0的边之后,依然连通,并求G*g0+S*s0的最小值。 n<=200,m<=50000。 思路:要生成最小生成树,我们选择的
阅读全文
摘要:3月27 日生日(华理)。 4月1 ‘日’蓝桥杯(华师); 4月15‘日’金马五校(上大?)。 蓝桥杯一定要稳住啊,毕竟准备了这么久,手感一直还不错;但求小题(补齐代码)里面不要考指针。 蓝桥杯在华师,比完去献血 纪念一下。 五校要被大佬吊打啦。。。啦啦啦。只求rp++得个二等奖啊。 4-16日,开
阅读全文
摘要:最小生成树二·Kruscal算法 最小生成树二·Kruscal算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析,小Hi已经筛选出了一些比较适合建造道路的路线
阅读全文
摘要:1097 : 最小生成树一·Prim算法 1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了! 但是,问题也接踵而来——小Hi现在手
阅读全文
摘要:Connect themTime Limit: 1 Second Memory Limit:32768 KBYou have n computers numbered from 1 ton and you want to connect them to make a small local...
阅读全文
1