sdut 2805(最小生成树)】的更多相关文章

大家快来A水题 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 (1<= N <=2000)(1<= M <= N*(N-1)/2)多组输入.每组第一行输入N.M.接下来M行每行.每行两个整数u,v代表岛u与v之间有一条路. 输出  <span 宋体;="" font-size:="" 14px;="" text-align:="" justify;\…
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 这道题一开始是用prim算法做的,一直错一直错,后来问了帅郭改用Kruskal做才对,再后来问了THH和二货才改对的prim算法,是因为重边我没处理啊,上火 #include <cstdio> #include <cstring> #include<cstdlib> #include<iostream> using name…
人活着系列之Streetlights Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 人活着假设是为了家庭,亲情----能够说是在这个世界上最温暖人心的,也是最让人放不下的,也是我在思索这个问题最说服自己接受的答案.对.或许活着是一种责任.为了生殖下一代.为了孝敬父母.男人要养家糊口,女人要生儿育女,就这样循环的过下去.但终于呢?还是劳累愁烦.转眼成空呀!   为了响应政府节约能源的政策,某市要对路灯进行改革,已知该市有n…
数据结构实验之图论六:村村通公路 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本. Input 连续多组数据输入,每组数据包括村落数目N(N…
#include<bits/stdc++.h> using namespace std; typedef long long ll; struct node { int s, e; int w; }s[100005]; int c[105]; bool cmp(struct node a, struct node b) { return a.w < b.w; } int fin(int x) { int r = x; while(r != c[r]) r = c[r]; int i =…
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=50#problem/D 最小生成树模板,注意的是这里有k个发电站,它们不再需要连接其他的发电站,所以任何两个发电站之间的权值是0: #include<stdio.h> #include<string.h> ; const int INF = 0x3f3f3f3f; int map[maxn][maxn],power[maxn]; int n,k; void pri…
最小生成树的一个作用,就是求最小花费.要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低.这就需要找到带权的最小生成树. 主要思路:贪心,假设一共有五个点,按道理来讲,应该是先找到图中最小权值的两个点没然后对剩余的点进行遍历.但是也可以任意指定一个点.可以任意指定的原因就是,如果给定的信息可以构成最小生成树的话,那么最小生成树中一定有所有的点,那么这个点也一定在树上,所以…
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 最小生成树,最重要的是了解思想 稠密图用Prim,稀疏图用Kruskal K(每次找最小的边连接,一条边连接两个点,所以单路就可以了) 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int bin[110]; 5 struct node 6 { 7 int…
以此图为例: package com.datastruct; import java.util.Scanner; public class TestKruskal { private static class Edge{ public Edge(int begin,int end,int weight){ this.begin = begin; this.end = end; this.weight = weight; } int begin; int end; int weight; publ…
最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了. [输入格式] 第一行包含两个数,n和m,其中1<=n<=100; 1<=m<=1000; 表示该无向图的节点数和边数.每个节点用1~n的整数编号.接下来的m行,每行…