72pts求调
查看原帖
72pts求调
1305557
yangqingyun楼主2025/7/31 21:15

显示#9,#10和#11是WA

#include<iostream>
#include<vector>
using namespace std;
const int mod_num1 = 9999971;
const int mod_num2 = 9999973;
const int mod_num3 = 9999977;
bool c1[mod_num1];
bool c2[mod_num2];
bool c3[mod_num3];
void insert(string str) {
	long long id1 = 0, id2 = 0, id3 = 0;
	int l = str.size();
	long long base = 1;
	for (int i = 0; i < l; i++) {
		id1 += base * int(str[i]);
		id1 %= mod_num1;
		base *= 131;
		base %= mod_num1;
	}
	base = 1;
	for (int i = 0; i < l; i++) {
		id2 += base * int(str[i]);
		id2 %= mod_num2;
		base *= 137;
		base %= mod_num2;
	}
	base = 1;
	for (int i = 0; i < l; i++) {
		id3 += base * int(str[i]);
		id3 %= mod_num3;
		base *= 149;
		base %= mod_num3;
	}
	c1[id1] = true;
	c2[id2] = true;
	c3[id3] = true;
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		string s;
		cin >> s;
		insert(s);
	}
	int sum1 = 0, sum2 = 0, sum3 = 0;
	for (int i = 0; i < mod_num1; i++) {
		if (c1[i]) {
			sum1++;
		}
	}
	for (int i = 0; i < mod_num2; i++) {
		if (c2[i]) {
			sum2++;
		}
	}
	for (int i = 0; i < mod_num3; i++) {
		if (c3[i]) {
			sum3++;
		}
	}
	cout << max(sum1, max(sum2, sum3));
	return 0;
}

求大佬帮忙调一调

2025/7/31 21:15
加载中...