题目链接:https://ac.nowcoder.com/acm/contest/1099/F
解题心得:以 ( 0 , 0 ) (0,0) (0,0)为原点将整个图划分成四个象限,如果单单看一个象限(不包含坐标轴)很容易找到规律,可以直接将四个象限的数量找到然后再计算在坐标轴上的点就行了。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn = 2e4+100;
const int mod = 1e9+7;
ll n, a, b, c, d, sum;
int main() {
// freopen("1.in.txt", "r", stdin);
while(scanf("%lld%lld%lld%lld%lld", &n, &a, &b, &c, &d) != EOF) {
sum = n*(n-1)/2%mod;
ll ans = 0;
ans = (ans + a*b%mod*sum)%mod;
ans = (ans + b*c%mod*sum)%mod;
ans = (ans + c*d%mod*sum)%mod;
ans = (ans + d*a%mod*sum)%mod;
ans = (ans + a*n + b*n + c*n + d*n + 1)%mod;
printf("%lld\n", ans);
}
return 0;
}