这道题我跑 100 100 的时候死活跑不出题目的答案。
但是我一直觉得我的公式是对的。
后来经过大佬的指点之后才发现自己忽略了绿色三角形的这种情况导致答案出错。(也就是说我的公式错了
这道题当我自己测试 3 3 的时候我的程序答案是24。如果你也是24的话可能跟我一样,少算了一种情况吧。
(正确答案应该是32)
AC的代码:
#include <bits/stdc++.h> using namespace std; const int MOD = 1e9+7; typedef long long ll; int main() { ios::sync_with_stdio(0); cin.tie(0); ll n, m; cin >> n >> m; ll ans1 = 2* n *((n-2)*(m-1)%MOD+(n-1)*(m-2)%MOD)%MOD; ll ans2 = 2*(m-2)*((m-2)*(n-1)%MOD+(m-1)*(n-2)%MOD)%MOD; cout << (ans1+ans2)%MOD << endl; return 0; }