门票
来源:互联网 发布:网络怎么赚钱最快 编辑:程序博客网 时间:2024/04/27 05:34
【题目描述】
省运会准备进行开幕式门票的销售,假设售票点前聚集了N个人购买门票。有M组出现第X个人帮助第Y个人买票(X可以等于Y,此时第X个人可以给自己买票),这时消耗时间W[X,Y](1<=W[x,y]<=20000)。
当然,这种帮助是相互的,也就是说如果第Y个人帮助第X个人买票,也将花费W[X,Y]个单位时间。
注意:
1.每个人帮助别人买票的时候必须要求自己已经购得开幕式门票。
2.X帮Y买票的时间有可能多次出现,必须从中选择较小的。
求解这N个人购买票的最短时间和,对于每个数据都保证N个人都获得开幕式门票。
【输入格式】
第一行两个正整数分别为N,M
以后M行,每行三个正整数X,Y,W[X,Y]
【输出格式】
一行一个整数,为N个人都购得开幕式门票的最短时间
【样例输入】
3 5
1 1 5
2 2 2
2 1 4
3 3 3
3 2 6
【样例输出】
9
【数据范围】
N<=2000,M<=13000
【分析】
Prim算法做最小生成树。
uses math;var f,b:array[0..2001]of longint; map:array[0..2001,0..2001]of longint; n,i,m,max,u,j,ans:longint;begin readln(n,m); fillchar(map,sizeof(map),$7f); for u:=1 to m do begin readln(i,j,ans); map[i,j]:=min(ans,map[i,j]); map[j,i]:=map[i,j]; end; for i:=1 to n do f[i]:=map[i,i]; ans:=0; fillchar(b,sizeof(b),0); for i:=1 to n do begin max:=maxlongint; for j:=1 to n do if (f[j]<max)and(b[j]=0) then begin max:=f[j]; u:=j; end; b[u]:=1; ans:=ans+f[u]; for j:=1 to n do if map[u,j]<f[j] then f[j]:=map[u,j]; end; write(ans);end.
3 0
- 门票
- 景点门票
- 开心!奥运门票在手 :)
- 奥运门票官方网站地址
- C# 门票销售器
- 门票销售计算器
- 【图论】【RQNOJ】门票系统
- [Rqnoj-199]门票系统
- 1068 公园门票
- 掌握求职门票
- 十渡孤山寨—门票
- 门票(特长生准备)
- 5.14特长生模拟 门票
- 1019: 公园门票
- 超女演唱会门票一张
- 中签了,奥运门票!细细
- 奥运门票第一阶段抽签结果
- 奥运门票订票又推迟 ... ...
- 命令行参数使用笔记[北京大学C++课程]
- sdut2278商人的诀窍
- Java学习记录(11)
- 设置vmware虚拟机固定IP
- makefile中的多target混乱依赖模式
- 门票
- CentOS 7.2 部署Rsync服务
- sdut2116数据结构实验之链表一:顺序建立链表
- 常见对象_String类的判断功能
- 225. Implement Stack using Queues
- sdut2117数据结构实验之链表二:逆序建立链表
- LintCode:回文串
- AngularJS: Date filtering and formatting
- 第一次博客呀