POJ 3723 Consortium

Source: Internet
Author: User

Consortium
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submissions: 6325 Accepted: 2184

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 login -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, N, M and R.
Then R lines followed, each contains three integers xi, yi and di.
There is a blank line before each test case.


1 ≤ N, M ≤ 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
Question: Conscription: There are n girls and m boys, each of which costs 10000 yuan. However, boys and girls interact with each other to reduce costs. For example, if the number of girls is 1 and the number of boys is 1, then after the recruitment of Girls, Boys only need to enter the army after the recruitment.

 


This question is very mysterious. It is actually the minimal spanning tree. At the beginning, I also treated boys and girls separately, that is, every time I get the minimum greedy value, I would use the relationship between boys and girls and the relationship between girls and boys to get the minimum value, and then I would take it again. Use prime. This can be done, but the number of boys and girls is large and the memory is too large.

As a matter of fact, boys and girls are the same type of points in the figure, but only boys and girls can communicate. Therefore, use krusical to add the minimum value each time. Same as the minimal spanning tree

 


 

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int n,m;struct node{    int x,y,s;}e[50010];int f[20010];int find(int x){    return (f[x]==x? x:f[x]=find(f[x]));}bool cmp(node s, node v){    return s.s>v.s;}void krusical(int p){    int i,j,ans=0;    for (i=0; i<p; i++)    {        int x=find(e[i].x);        int y=find(e[i].y);        if (x!=y)        {            ans+=e[i].s;            f[x]=f[y];        }    }    cout<<10000*(n+m)-ans<<endl;}int main (){    int i,j,t,r,s;    cin>>t;    while(t--)    {        int p=0;        cin>>n>>m;        for (i=0; i<=n+m; i++)            f[i]=i;        cin>>r;        while(r--)        {            scanf("%d%d%d",&e[p].x,&j,&e[p].s);            e[p++].y=j+n;        }        sort(e,e+p,cmp);        krusical(p);    }    return 0;}

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.