热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Conscriptionpoj3723(最大生成树)

ConscriptionTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:6870Accepted:2361Descript

Conscription











Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 6870   Accepted: 2361

Description


Windy has a country, and he wants to build an army to protect his country. He
has picked up N girls and M boys and wants
to collect them to be his soldiers. To collect a soldier without any privilege,
he must pay 10000 RMB. There are some relationships between girls and boys and
Windy can use these relationships to reduce his cost. If
girl x and boy y have a
relationship d and one of them has been collected, Windy can
collect the other one with 10000-d RMB. Now given all the
relationships between girls and boys, your assignment is to find the least
amount of money Windy has to pay. Notice that only one relationship can be used
when collecting one soldier.

Input


The first line of input is the number of test case.
The first line of each
test case contains three
integers, NM and R.
Then R lines
followed, each contains three
integers xiyi and di.
There
is a blank line before each test case.

1 ≤ NM ≤ 10000
0
≤ R ≤ 50,000
0
≤ xi < N
0
≤ yi < M
0
di <10000

Output


For each test case output the answer in a single
line.

Sample Input

2
5 5 8
4 3 6831
1 3 4583
0 0 6592
0 1 3063
3 3 4975
1 3 2049
4 2 2104
2 2 781
5 5 10
2 4 9820
3 2 6236
3 1 8864
2 4 8326
2 0 5156
2 0 1463
4 1 2439
0 4 4373
3 4 8889
2 4 3133

Sample Output

71071
54223


bubuko.com,布布扣id="code_img_closed_464fdb89-8812-4907-91a5-d54c28d4dd1c" class="code_img_closed"
src="https://img.php1.cn/3cd4a/1eebe/cd5/6c257b6ba227cc3e.webp">bubuko.com,布布扣 id="code_img_opened_464fdb89-8812-4907-91a5-d54c28d4dd1c"
class="code_img_opened" Onclick="cnblogs_code_hide(‘464fdb89-8812-4907-91a5-d54c28d4dd1c‘,event)"
src="https://img.php1.cn/3cd4a/1eebe/cd5/d942b7ec373849c3.webp">

1 #include
2 #include <string.h>
3 #include
4 #include
5 using namespace std;
6 typedef struct abcd
7 {
8 int x,y,z;
9 } abcd;
10 bool cmp(abcd x,abcd y)
11 {
12 return x.z>y.z;
13 }
14 abcd a[70000];
15 int p[100000];
16 int findset(int x)
17 {
18 int i,px=x;
19 while(px!=p[px])px=p[px];
20 while(x!=px)
21 {
22 i=p[x];
23 p[x]=px;
24 x=i;
25 }
26 return px;
27 }
28 int main()
29 {
30 int t,n,m,r,i,j,x,y,z;
31 cin>>t;
32 while(t--)
33 {
34 scanf("%d%d%d",&n,&m,&r);
35 for(i=0; ii;
36 for(i=0; i)
37 {
38 scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
39 a[i].y+=n;
40 }
41 sort(a,a+r,cmp);
42 long long sum=10000*(m+n);
43 for(i=0; i)
44 {
45 int x1=findset(a[i].x),y1=findset(a[i].y);
46 if(x1!=y1)
47 {
48 sum-=a[i].z;
49 p[x1]=y1;
50 }
51 }
52 cout<endl;
53 }
54 }

View Code

Conscription poj3723(最大生成树),布布扣,bubuko.com


推荐阅读
author-avatar
CCTV2财经2677
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有