作为一道NOI2015的第一题,时限2s,但还是很简单的…
做题经历:
1.交了一遍STL,90分,测试点#2TLE。准备下测试数据时被告知测试点过大无法下载……
贴一遍90分代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
class expr{
public:
ll a,b,op;
};
map<ll,ll>mp;
ll test,cnt,vars;
bool valid;
ll boss[2000001];
expr ex[1000001];
inline ll setup()
{
for(register int i=0;i<vars;i++)
{
boss[i]=i;
}
}
inline ll findb(ll node)
{
if(boss[node]==node)
{
return node;
}
else
{
boss[node]=findb(boss[node]);
return boss[node];
}
}
inline void Union(ll na,ll nb)
{
ll ba,bb;
ba=findb(na);
bb=findb(nb);
if(bb!=ba)
{
boss[bb]=ba;
}
}
inline bool Find(ll na,ll nb)
{
return findb(na)==findb(nb);
}
inline bool cmp(expr a,expr b)
{
return a.op>b.op;
}
int main()
{
ios::sync_with_stdio(false);
cin>>test;
for(register int i=0;i<test;i++)
{
cin>>cnt;
valid=1;
vars=0;
mp.clear();