可以把面积为1的好三角形分成两类分开统计:两条边和两个坐标轴平行;只有一条边和某个坐标轴平行。

对于第一种情况,一定是1*2或者2*1的形式,一个1*2的矩形中含有4个不同的三角形。总数是4*((n-2)*(m-1)+(m-2)*(n-1))

对于第二种情况,可以分别统计底边为2,高为1和底边为1,高为2的情况。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int mod = 1e9+;
int main() {
ll n,m;
cin>>n>>m;
ll s=(n-)*(m-)*%mod+(n-)*(m-)*%mod;
s=(s+*(n-)*(m-)%mod*(m-)%mod+*(m-)*(n-)%mod*(n-)%mod)%mod;
s=(s+*(n-)*(m-)%mod*(m-)%mod+*(m-)*(n-)%mod*(n-)%mod)%mod;
cout<<s;
}
05-28 19:29