Civil and Evil Engineer(普林姆)
2024-10-21 16:37:57
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=198#problem/E
水题一道,题意就是让求一遍最小生成树与最大生成树,但我因为Each case contains a blank line and an integer n (1 ≤ n ≤ 100) denoting the number of houses.这句话错了三遍,有两种解决方案,一不用管空格,二gets(str);
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define N 1000001
int map[][],map1[][];
int v[],v1[];
int dis[],dis1[];
int n;
int Primmin()
{
int min,k,sum=;
memset(v,,sizeof(v));
v[]=;
for(int i=;i<=n;i++)
dis[i]=map[][i];
for(int i=;i<n;i++)
{
min=N;
for(int j=;j<=n;j++)
{
if(v[j]==&&min>dis[j])
{
min=dis[j];
k=j;
}
}
v[k]=;
sum=sum+min;
for(int j=;j<=n;j++)
{
if(v[j]==&&dis[j]>map[k][j])
{
dis[j]=map[k][j];
}
}
}
return sum;
}
int Primmax()
{
int min,k,sum=;
memset(v1,,sizeof(v1));
v1[]=;
for(int i=;i<=n;i++)
dis1[i]=map1[][i];
for(int i=;i<n;i++)
{
min=;
for(int j=;j<=n;j++)
{
if(v1[j]==&&min<dis1[j])
{
min=dis1[j];
k=j;
}
}
sum=sum+min;
v1[k]=;
for(int j=;j<=n;j++)
{
if(v1[j]==&&dis1[j]<map1[k][j])
{
dis1[j]=map1[k][j];
}
}
}
return sum;
}
int main()
{
int T,K=;
char ch[];
scanf("%d",&T);
while(T--)
{
K++;
gets(ch);
scanf("%d",&n);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
map[i][j]=N;
map[j][i]=N;
}
map[i][i]=;
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
map1[i][j]=;
map1[j][i]=;
}
}
int xx,yy,zz;
while(scanf("%d%d%d",&xx,&yy,&zz)!=EOF)
{
if(xx==&&yy==&&zz==) break;
if(map[xx][yy]>zz)
{
map[xx][yy]=zz;
map[yy][xx]=zz;
}
if(map1[xx][yy]<zz)
{
map1[xx][yy]=zz;
map1[yy][xx]=zz;
}
}
int sum1=Primmin();
int sum2=Primmax();
long long int tt=sum1+sum2;
if(tt%==)
{
tt=tt/;
printf("Case %d: %lld\n",K,tt);
}
else printf("Case %d: %lld/2\n",K,tt);
}
return ;
}
最新文章
- http Content-type对照表
- 【git学习】sha1 deflate
- poj 3177 Redundant Paths
- Tickeys -- 找对打字的感觉 (机械键盘音效软件)
- 寒冰王座[HDU1248]
- SQL SERVER2005 的三种复制类型概述
- 学习shell之前你不得不了解的小知识
- 安装Genymotion android模拟器
- HDU 3452 Bonsai(网络流之最小割)
- Java基础知识强化之IO流笔记23:计算机是如何识别把两个字节拼接为中文(附加)
- CodeSmith使用总结--创建一个基础模板
- Jsunpack
- javascript正则表达式小数类型
- 编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头
- my dream
- Linux指令--diff
- (MariaDB)开窗函数用法
- Dynamics CRM2016 业务流程之Task Flow(一)
- shell脚本-工作练习篇
- learn python the hard way习题31~40总结以及列表的扩展知识