用dp[i]表示第i天的最少花费 cost[i][j]表示从i到j天方案不变时的士兵数 用双层循环+kruskal预处理出cost[i][j] P[u][v][t]表示u到v的路在t时间是否可用 (即灾害) 按照时间轴进行dp,外层循环i,内层循环j表示它的方案从第j天转移而来 dp[i]=min( ...
分类:
其他好文 时间:
2018-12-02 12:11:28
阅读次数:
158
伪代码 对所有边按权值从小到大排序,记录第i小的边为e[i],(1<=i<=m) 初始化MST为空 初始化连通分量,让每个点成为一个独立的连通分量 具体代码如下 ...
分类:
编程语言 时间:
2018-11-28 23:41:36
阅读次数:
258
算法思路:每次选取权值最小的边,判断这两个点是否在同一个集合内,如果在则跳过,如果不在则加上这条边的权值 可以使用并查集储存结点,可以快速判断结点是否在同一集合内。 ...
分类:
其他好文 时间:
2018-11-26 19:57:49
阅读次数:
225
http://uoj.ac/problem/407 分析: 分别建立最小/最大kruskal重构树。 每次询问给出的两个点能走到的部分分别对应两棵树$dfs$序的一段区间。 转化成判断矩形中是否有点。 代码: ...
分类:
其他好文 时间:
2018-11-25 16:09:19
阅读次数:
256
emmmmm 最小生成树,kruskal 大概是dtx教的,%%%(他博客没申请好,以后再放链接来膜 这道题是学长推荐做的(我点名要水题 /*超喜欢题面嗷 漂亮的天空上有漂亮的云彩,漂亮的孩子做着漂亮的梦 (而且立刻联想到小云彩嗷嗷嗷 qwq*/ 无视以上废话,看题 其实和最小生成树的模版题没什么区 ...
分类:
其他好文 时间:
2018-11-24 18:51:22
阅读次数:
195
那还是先把题目丢出来,是HDU上的一道题 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27972 Accepted Submissi ...
分类:
编程语言 时间:
2018-11-24 14:33:45
阅读次数:
192
//最小生成树,Kruskal算法 struct rec { int x; int y; int z; }edge[50010]; int fa[10010],n,m,ans; bool operator >n>>m; for(int i=1;i>T; while(T--) { cin>>n; fo... ...
分类:
编程语言 时间:
2018-11-23 18:34:02
阅读次数:
172
克鲁斯卡尔算法打印最小生成树: 构造出所有边的集合 edges,从小到大,依次选出筛选边打印,遇到闭环(形成回路)时跳过。 JS代码: 打印结果: 代码部分过程解析: 克鲁斯卡尔算法主要针对边展开,时间复杂度为 O(elog e),e为图的边数,普利姆算法的时间复杂度为O(n²),n为最小生成树的边 ...
分类:
编程语言 时间:
2018-11-14 22:27:12
阅读次数:
271
Constructing Roads There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to e ...
分类:
其他好文 时间:
2018-11-13 02:29:40
阅读次数:
193
Kruskal算法 伪代码 sort间接排序r[i]数组,找出权值最小的边 进行判断如果不是在一块的,那么答案加上权值两条边合并 模板 include using namespace std; int f[200010],r[200010]; int num[200010],to[200010],c ...
分类:
其他好文 时间:
2018-11-06 13:34:14
阅读次数:
110