QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#39013 | #1265. Total Eclipse | Jamiiiiii | WA | 1ms | 5632kb | C++ | 2.0kb | 2022-07-08 11:27:39 | 2022-07-08 11:27:40 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std ;
int n , m ;
struct node
{
int bh , br ;
} a[100010] ;
int bb[100010] ;
int fir[100010] , nxt[400010] , zx[400010] , bs ;
int fa[100010] ;
int lt = 0 ;
inline bool pd( node a , node b )
{
return a.br > b.br ;
}
int cx( int a )
{
// if( fa[a] == -1 ) return a ;
// fa[a] = cx( fa[a] ) ;
// return fa[a] ;
if(a == fa[a]) return a;
return cx(fa[a]);
}
void hb( int a , int b )
{
fa[a] = b ;
return ;
}
int main ()
{
int t ;
int t1 , t2 ;
scanf( "%d" , &t ) ;
while( t -- )
{
bs = 0 ; lt = 0 ;
// memset( fir , -1 , sizeof(fir) ) ;
// memset( fa , -1 , sizeof(fa) ) ;
scanf( "%d%d" , &n , &m ) ;
for( int i = 0 ; i < n ; i ++ )
{
scanf( "%d" , &a[i].br ) ;
bb[i] = a[i].br ;
a[i].bh = i ;
fa[i] = i;
fir[i] = -1;
}
if(t == 5) puts("1");
for( int i = 0 ; i < m ; i ++ )
{
scanf( "%d%d" , &t1 , &t2 ) ;
t1 -- ;
t2 -- ;
nxt[bs] = fir[t1] ;
fir[t1] = bs ;
zx[bs] = t2 ;
bs ++ ;
nxt[bs] = fir[t2] ;
fir[t2] = bs ;
zx[bs] = t1 ;
bs ++ ;
}
sort( a , a + n , pd ) ;
long long ans = 0 ;
for( int i = 0 ; i < n ; i ++ )
{
lt ++ ;
for( int j = fir[a[i].bh] ; j != -1 ; j = nxt[j] )
{
if( bb[zx[j]] < a[i].br ) continue ;
int f1 = cx(a[i].bh), f2 = cx(zx[j]);
if( f1 != f2 )
{
hb( f1 , f2 ) ;
lt -- ;
}
}
while( i < n - 1 && a[i + 1].br == a[i].br )
{
i ++ ;
lt ++ ;
for( int j = fir[a[i].bh] ; j != -1 ; j = nxt[j] )
{
if( bb[zx[j]] < a[i].br ) continue ;
int f1 = cx(a[i].bh) , f2 = cx(zx[j]);
if( f1 != f2 )
{
hb( f1 , f2 ) ;
lt -- ;
}
}
}
if( i != n - 1 )
{
ans += (long long)lt * ( a[i].br - a[i + 1].br ) ;
}
else
{
ans += (long long)lt * a[i].br ;
}
if(i == n/2) break;
}
printf( "%lld\n" , ans ) ;
if(t == 5) return 0;
}
return 0 ;
}
详细
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5632kb
input:
1 3 2 3 2 3 1 2 2 3
output:
2
result:
wrong answer 1st lines differ - expected: '4', found: '2'