poj1861-Network

题目链接 http://vjudge.net/problem/POJ-1861

解题思路

用Kruskal算法可以比较轻松地得到每次连接的边

但是我用了1000ms过的。。。(时限1000ms(⊙﹏⊙)b)可能是我写挫了吧

代码

#include<iostream>
#include<algorithm>
using namespace std;
const int MAX_SIZE = 1010;
const int INF = 1e9 + 7;
struct node {
  int x, y;
  int value;
}p[15010], edge[15010];
int father[MAX_SIZE];
int n, m;
int maxEdge;
void read()
{
  for(int i=0; i<m; i++) {
    cin >> p[i].x >> p[i].y >> p[i].value;
  }
}
void make()
{
  for(int i=1; i<=n; i++)
    father[i] = i;
}
int find(int x)
{
  if(x != father[x])
    father[x] = find(father[x]);
  return father[x];
}
bool cmp(node a, node b)
{
  if(a.x != b.x)
    return a.x < b.x;
  else if(a.y != b.y)
    return a.y < b.y;
}
bool cmp1(node a, node b)
{
    return a.value < b.value;
}
int kru()
{
  int cnt = 0;
  make();
  for(int i=0; i<m; i++) {
    int xf = find(p[i].x);
    int yf = find(p[i].y);
    if(xf == yf) continue;
    father[xf] = yf;
    if(p[i].value > maxEdge) maxEdge = p[i].value;
    edge[cnt].x = p[i].x;
    edge[cnt].y = p[i].y;
    cnt++;
  }
  return cnt;
}
int main()
{
  cin >> n >> m;
  read();
  sort(p, p+m, cmp1);
  int cnt = kru();
  //sort(edge, edge+cnt, cmp);
  cout << maxEdge << endl;
  cout << cnt << endl;
  for(int i=0; i<cnt; i++)
    cout << edge[i].x << " " << edge[i].y << endl;
  return 0;
}
时间: 2024-10-11 16:19:33

poj1861-Network的相关文章

POJ-1861,Network,最小生成树水题,,注意题面输出有问题,不必理会~~

Network Time Limit: 1000MS   Memory Limit: 30000K          Special Judge http://poj.org/problem?id=1861 Description Andrew is working as system administrator and is planning to establish a new network in his company. There will be N hubs in the compa

POJ1861 Network(Kruskal)(并查集)

Network Time Limit: 1000MS     Memory Limit: 30000K Total Submissions: 16047   Accepted: 6362   Special Judge Description Andrew is working as system administrator and is planning to establish a new network in his company. There will be N hubs in the

POJ1861(Network)-Kruskal

题目在这 Sample Input 4 6 1 2 1 1 3 1 1 4 2 2 3 1 3 4 1 2 4 1 Sample Output 1 4 1 2 1 3 2 3 3 4 题目意思:4个点,6个边,每个边有对应的权值.最后输出一行为路径中最大的边的值,第二行为路径上边的总数, 第三行为每条边的始末编号.题目需要求出最小生成树的最大边的最小值. 1 /* 2 Problem: 1861 User: 3 Memory: 416K Time: 500MS 4 Language: C++ R

最小生成树练习1(克鲁斯卡尔算法Kruskal)

今天刷一下水题练手入门,明天继续. poj1861 Network(最小生成树)新手入门题. 题意:输出连接方案中最长的单根网线长度(必须使这个值是所有方案中最小的),然后输出方案. 题解:本题没有直接求生成树,但如果连接n个集线器的方案多于n-1条边,那么必存在回路,因此去掉某些边剩下的边和所有顶点构成一个生成树.对于一个图的最小生成树来说,它的最大边满足所有生成树的最大边里最小,正和题意. 吐槽:题目样例是错的... 1 #include<cstdio> 2 #include<cst

ubuntu开机出现waiting for network configuration

ubuntu启动时,出现waiting for network configuration,waiting up to 60 more seconds for network configuration等,进入桌面后网络图标也不见了 解决方法,首先在 /etc/network/interfaces 文件里面无关的都删去,留下lo这个 然后再到/etc/init/failsafe.conf文件里将sleep59改成5或10,sleep50意思是等待59秒

Linux 性能监控 : CPU 、Memory 、 IO 、Network

一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70% 上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的 可运行队列:每个处理器的可运行队列<=3个线程 2.监控工具 vmstat $ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --s

深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 最近接下来几篇博文会回到神经网络结构的讨论上来,前面我在"深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning"一文中介绍了经典的CNN网络结构模型,这些可以说已经是家喻户晓的网络结构,在那一文结尾,我提到"是时候动一动卷积计算的形式了",原因是很多工作证明了,在基本的CNN卷积计算模式之外,很多简

qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method

最近在做一个网络音乐播放器时,由于出现qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method, 而不能播放网络歌曲. 上网搜了半天,都说要在电脑那里安装openssl,然后把C:\OpenSSL-Win64\bin下的libeay32.dll和ssleay32.dll拷贝到D:\Qt\Qt5.4.2\5.4\mingw491_32\bin, 然而并没什么卵用! 我的解决办法是: Qt的这个目

bzoj1834: [ZJOI2010]network 网络扩容

努力看了很久样例一直过不了...然后各种输出中间过程啊巴拉巴拉弄了1h,没办法了...然后突然想到啊原来的边可以用啊为什么不用...于是A了...感人肺腑 #include<cstdio> #include<cstring> #include<queue> #include<iostream> #include<algorithm> using namespace std; #define rep(i,n) for(int i=1;i<=n

linux 6.x network device not active

[[email protected] Desktop]# service networkrestart Shutting down interface eth0: Error: Device\'eth0\' (/org/freedesktop/NetworkManager/Devices/0)disconnecting failed: This device is not active [FAILED] Shutting down loopback interface: [ OK ] Bring