- P53's solution
-
题解P53
- @ 2025-11-30 12:15:35
本来是想用逆元做的,可是挂了。
WA code:
#include <bit/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
long long mod_pow(long long base, long long exp) {
long long result = 1;
while (exp > 0) {
if (exp % 2 == 1) {
result = (result * base) % MOD;
}
base = (base * base) % MOD;
exp /= 2;
}
return result;
}
int main() {
long long n;
cin >> n;
long long a = n % MOD;
long long b = (n + 1) % MOD;
long long c = (n + 2) % MOD;
long long d = (3 * n + 1) % MOD;
long long num = a * b % MOD;
num = num * c % MOD;
num = num * d % MOD;
long long inv_24 = mod_pow(24, MOD - 2);
long long result = num * inv_24 % MOD;
cout << result << endl;
return 0;
}
AC code:
#include <bits/stdc++.h>
const int MOD = 1e9 + 7;
using namespace std;
int main() {
long long n;
cin >> n;
cout << n * (n + 1) % MOD * (n + 2) % MOD * (n + 1) % MOD * (MOD + 1) / 4 % MOD << endl;
return 0;
}