HDOJ 1301最小生成树的Kruskal算法
2024-09-04 20:37:54
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301
将结点的字符信息处理成点信息即可,代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef unsigned int ui;
typedef long long ll;
typedef unsigned long long ull;
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a))
#define prime1 1e9+7
#define prime2 1e9+9
#define pi 3.14159265
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define scand(x) scanf("%llf",&x)
#define f(i,a,b) for(int i=a;i<=b;i++)
#define scan(a) scanf("%d",&a)
#define mp(a,b) make_pair((a),(b))
#define P pair<int,int>
#define dbg(args) cout<<#args<<":"<<args<<endl;
#define inf 0x3f3f3f3f
const int maxn=1e6+;
int n,m,t;
inline int read(){
int ans=,w=;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-')w=-;ch=getchar();}
while(isdigit(ch))ans=(ans<<)+(ans<<)+ch-'',ch=getchar();
return ans*w;
}
struct node{
int u,v,w;
}e[maxn];
int cnt=,ans;
int f[maxn];
void init()
{
f(i,,n)f[i]=i;
cnt=;
ans=;
}
bool cmp(node& a,node& b)
{
return a.w<b.w;
}
int find(int x)
{
return x==f[x]?x:f[x]=find(f[x]);
}
void Union(int x,int y,int w)
{
int fx=find(x);
int fy=find(y);
if(fx==fy)return;
else
{
f[fx]=fy;
ans+=w;
}
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
std::ios::sync_with_stdio(false);
while(scan(n))
{
if(!n)break;
init();
char s[];
f(i,,n-)
{
scanf(" %s",s);
int tmp1=s[]-'A'+;
m=read();
while(m--)
{
scanf("%s",s);
t=read();
int tmp2=s[]-'A'+;
e[++cnt].u=tmp1;
e[cnt].v=tmp2;
e[cnt].w=t;
}
}
sort(e+,e+cnt+,cmp);
f(i,,cnt)Union(e[i].u,e[i].v,e[i].w);
pf("%d\n",ans);
}
}
最新文章
- 基于Caffe的Large Margin Softmax Loss的实现(上)
- excel导出字符串
- Hibernate框架(未完待续&#183;&#183;&#183;&#183;&#183;&#183;)
- 为什么不能把委托(delegate)放在一个接口(interface)当中?
- Hadoop 问题 &; 解决
- jquery 中的 $(";#id";) 与 document.getElementById(";id";) 的区别
- HTTP协议(超文本传输协议)
- 【Oracle】ORA-01722:无效数字(控制文件最后一个字段)
- Linux-ssh的rsa认证登录配置
- AtCoder Regular Contest 078
- nginx里的sticky的作用
- react - web + webpack4 从0构建
- Java:JavaBean和BeanUtils
- STM32F105 PA9/OTG_FS_VBUS Issues
- 标准遗传算法(实数编码 python实现)模拟二进制交叉SBX 多项式变异
- paddle实践
- 【BZOJ4720】【NOIP2016】换教室
- Java设计模式(3)建造者模式(Builder模式)
- C语言——打印“Hello World!”,这么简单?
- extern “C”