[Offer收割]编程练习赛23 register

Ended

Participants:430

Verdict:Wrong Answer
Score:10 / 100
Submitted:2017-08-20 14:29:00

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
const int MAXN =(int)1e5+10;
struct node{
     int u,v,w,idx;
}p[MAXN<<1];
int au[MAXN],av[MAXN];
set<int>s[MAXN];
set<int>::iterator it;
bool cmp(const node &a,const node &b){
    return a.w<b.w;
}
int fx[MAXN];
int fi(int a){
    if(fx[a]!=a)fx[a]=fi(fx[a]);
    return fx[a];
}
int mark[MAXN],idx[MAXN];
void merge(int &a,int &b){
    if(s[a].size()<s[b].size())swap(a,b);
    for(it=s[b].begin();it!=s[b].end();it++){
        s[a].insert(*it);
    }
    b=a;
}
int main()
{
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX