这题暴力只能呵呵呵..
先算出所有的任取三点的方案数然后减去在同一直线的情况
枚举所用长度为
i
宽度为
这个个数其实就是
gcd(i,j)−1
然后如果矩形的长度和宽度都不是
0
的话有两对相对的顶点需要再乘以
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll ans,n,m,w;
ll gcd(ll a,ll b)
{
return a==0?b:gcd(b%a,a);
}
int main()
{
cin>>n>>m;
n++,m++;
w=n*m;
ans=w*(w-1)*(w-2)/6;
ans-=n*m;
for(int i=0;i<n;i++)
for(int j=0;j<=m;j++)
ans-=(gcd(i,j)-1)*(n-i)*(m-j)*(i&&j?2:1);
cout<<ans;
return 0;
}