0%

ABC-402-D - Line Crossing(圆上之弦相交之几何)

思路讲解

赛时过的,记录一下。

image

首先,注意到,(u+v)modN(u+v)\mod N 值相等的线平行。全部组合中,减去平行的组合,就是答案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	FOR(i,1,M){
ll u,v;
cin>>u>>v;
// G.pb(u,v);
Sum.pb((u+v)%N);
}
ll ans=M*(M-1),lans=0;
sort(all(Sum));
FOR(i,0,SZ(Sum)-1){
ll num=upper_bound(all(Sum),Sum[i])-lower_bound(all(Sum),Sum[i])-1;
ans-=num;
// #ifdef LOCAL
// debug(Sum[i]);
// debug(num);
// #endif
}

AC代码

https://atcoder.jp/contests/abc402/submissions/66034983

心路历程(WA,TLE,MLE……)