Module: 해싱


Problem

1/8

이중 문자열 해시

Theory Click to read/hide

Error

Problem

t개의 쿼리가 제공되며 각 쿼리에는 소문자 라틴 문자, 숫자 p 및 숫자 mod로 구성된 문자열 s가 제공됩니다.
각 쿼리에 대해 각 문자가 복제되는 문자열 s인 문자열의 다항식 해시 모듈로 베이스 p를 계산합니다. 즉, s = "isaac"이면 문자열 "iissaaaacc"에서 해시를 계산해야 합니다.

입력:
첫 번째 줄에는 숫자 t(요청 수)가 포함됩니다.
그런 다음 각각 공백으로 구분된 s(1 <= |s| <= 20), p(1 <= p <= 105) 및 mod( 1 <= 모드 <= 108).

출력:
쿼리에 대한 응답을 각각 별도의 줄에 인쇄합니다.

예:
  <몸>
입력 출력
2
아이작 12345 87654321
뉴턴 54321 12345678
8829000
9632318
Write the program below
#include<bits/stdc++.h>
using namespace std;

long long calc_hash(const string& s, long long p, long long mod) {
	long long h = 0;
	for (int i = 0; i < s.size(); i++) {
		h = 
	     
}
	return h;
}

int main()
{
	int t;
	cin >> t;

	while (t--) {
		string s;
		long long p, mod;
		cin >> s >> p >> mod;
		cout << calc_hash(s, p, mod) << '\n';
	}

	return 0;
}
     

     

Program check result

To check the solution of the problem, you need to register or log in!