학사 나부랭이
백준 15829 - 모듈러 연산 본문
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n;
cin >> n;
long long res = 0, s = 1;
string str;
cin >> str;
for (int i = 0; i < str.size(); i++) {
//(a + b) mod n = ((a mod n_[ⓐ에서 res < 1234567891 즉 해줄 필요 X]) + (b mod n_[str.at * s < 1234567891])) mod n_[ⓑ]
//(a * b) mod n = ((a mod n_[str.at < 1234567891]) *_[ⓐ에서 s곱] (b mod n_[ⓒ])) mod n_[ⓑ]
//res += ((long long)str.at(i) - 96) * sqr(31, i);
//= res = (res + str.at - 96) * s
res += ((long long)str.at(i) - 96) * s; //ⓐ
res %= 1234567891; //ⓑ
s = (s * 31) % 1234567891; //ⓒ
}
cout << res << endl;
}
'塵箱 > 코드 삽질' 카테고리의 다른 글
백준 11651 - 퀵 정렬 (0) | 2021.04.21 |
---|---|
백준 2869 - 조건 적확하게 설정하기 (0) | 2021.04.20 |
백준 10866 - 덱 (0) | 2021.04.19 |
백준 1494 - 다이나믹 프로그래밍, 이진 탐색 (0) | 2021.04.17 |
Floyd algorithm (0) | 2021.04.16 |
Comments