前排
by retep @ 2022-04-24 19:29:40
@[retep](/user/438957)
捕捉神犇
# [retep](/user/438957) ak IOI
```cpp
while([retep](/user/438957).ak(IOI))
%%%;
```
by Kirito_Chen @ 2022-04-25 11:13:31
@[Kirito_Chen](/user/472650) 我也50分,不知道哪里错了,代码和你差不多
by 逸之为一 @ 2022-05-11 22:07:32
```cpp
#include<bits/stdc++.h>
using namespace std ;
const int Maxs = 1010 , TIL = ( 1 << 28 ) ;
struct Node { int i , l , Q ; } tree[ Maxs * Maxs ] ;
int X[Maxs] , Y[Maxs] ;
int Sum , Ans , Max ;
int Fa[Maxs] ;
int A[Maxs] ;
int n , m ;
int Ecnt ;
bool Cmp( Node i , Node l ) { return i.Q < l.Q ; }
int Fin( int i ) { return ( Fa[i] == i ) ? i : Fa[i] = Fin( Fa[i] ) ; }
int main( ) {
scanf("%d" , &n ) ;
for(int i = 1 ; i <= n ; i ++ ) Fa[i] = i ;
for(int i = 1 ; i <= n ; i ++ ) scanf("%d" , &A[i]) , A[i] *= A[i] ;
scanf("%d" , &m ) ;
for(int i = 1 ; i <= m ; i ++ ) {
scanf( "%d%d" , &X[i] , &Y[i] ) ;
for(int l = 1 ; l <= i - 1 ; l ++ ) {
tree[ ++ Sum].i = i ;
tree[ Sum ].l = l ;
tree[ Sum ].Q = abs( X[i] - X[l] ) * abs( X[i] - X[l] ) + abs( Y[i] - Y[l] ) * abs( Y[i] - Y[l] ) ;
}
}
sort( tree + 1 , tree + Sum + 1 , Cmp ) ;
for( int i = 1 ; i <= Sum ; i ++ ) {
if( Fin( tree[i].i ) == Fin( tree[i].l ) ) continue ;
Fa[Fin( tree[i].i )] = Fin( tree[i].l ) ; Max = tree[i].Q ;
if( ++ Ecnt == m - 1 ) break ;
}
for(int i = 1 ; i <= n ; i ++ )
if( A[i] >= Max ) Ans ++ ;
printf("%d\n" , Ans) ;
return 0 ;
}
```
by 逸之为一 @ 2022-05-11 22:09:09
@[逸之为一](/user/311502) 我的问题是`init()`函数里面应该是`i<=m` ,你好像也是同样的问题
by Kirito_Chen @ 2022-05-12 10:28:15
@[Kirito_Chen](/user/472650) 嗯,好像确实是这样呢
by 逸之为一 @ 2022-05-25 15:55:22
@[Kirito_Chen](/user/472650) 啊哈哈哈,AC来捞
by 逸之为一 @ 2022-05-25 15:56:05