解题思路:
因为n是1000,所以直接 O(n2) 去枚举所有边,那么每一条边显然会在其他n−2个三角形中出现,这个就是这条边的贡献系数,这题就算完了。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
const int N=1e5+10;
const int mod=998244353;
int n;
struct Node
{
ll x,y;
}nd[N];
ll dist(Node a,Node b)
{
return abs(a.x-b.x)+abs(a.y-b.y);
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%lld%lld",&nd[i].x,&nd[i].y);
}
ll C=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
ll dis=dist(nd[i],nd[j]);
C=(C+(n-2)*dis)%mod;
}
}
printf("%lld\n",C);
return 0;
}