ARC 102 | C - Triangular Relationship
문제.
해법
질문문 아래.
a + b\equiv b + c\equiv c + a\equiv 0\(\bmod\K)
여기서 a+b\equivb+c에서 b를 빼면
a\equiv c\(\bmod\K)
대칭성보다는
a\equiv b\equiv c\(\bmod\K)
위의 내용을 활용하여 a+b\equiv0부터 시작하십시오.
a + b\equiv 2a\equiv 0\(\bmod\K)
여기서 K가 홀수일 때 2와 K는 서로 수수하기 때문에 a는 K로 나눌 수 있다.
만약 K가 짝수라면 K = 2K
2a\equiv 0\(\bmod\K)
2a\equiv 0\(\bmod\2K')
a\equiv 0\(\bmod\K')
대칭성보다는
a\equiv 0\(\bmod\K')
b\equiv 0\(\bmod\K')
c\equiv 0\(\bmod\K')
근거
a\equiv b\equiv c\equiv 0\(\bmod\K)
또 K=2K 때문에.
a\equiv b\equiv c\equiv K'\(\bmod\K)
코드
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
const int MOD = 1e9 + 7;
int main() {
ll n, k;
cin >> n >> k;
vector<ll> v(k);
for (int i = 1; i <= n; i++) {
v[i % k]++;
}
if (k % 2 == 0) {
cout << v[0] * v[0] * v[0] + v[k / 2] * v[k / 2] * v[k / 2] << endl;
} else {
cout << v[0] * v[0] * v[0] << endl;
}
}
참고 자료
Reference
이 문제에 관하여(ARC 102 | C - Triangular Relationship), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/wapa5pow/articles/arc102-c-270c40ebb84bcb0d1d19텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)