0分求调
查看原帖
0分求调
1453183
hzy0928楼主2025/7/28 11:18
#include<bits/stdc++.h>
using namespace std;
int b[30];
bool f[105];
vector<int> a;
void node(int x){
	for(int i = 2; i <= x; i++) {//倍数 
		if(f[i] == 0) {//i是质数 
			a.push_back(i);//把质数放进动态数组 
		}
		for(int j = 0; j < a.size(); j++) {
			int p = a[j];//动态数组里的质数 
			if(p * i > x) {//防止数组越界 
				break;
			}
			f[i * p] = 1;//合数 
			if(i % p == 0) {//减少重复筛选 
				break;
			}
		}
	}
}
int main() {
	node(100);
	string s;
	cin >> s;
	for(int i = 0;i < s.size();i++){
		b[int(s[i] - 'a')]++;
	}
	int maxn = 0 , minn = 10000;
	for(int i = 1;i < 27;i++){
		maxn = max(maxn , b[i]);
		minn = min(minn , b[i]);
	}
	int x = maxn - minn;
	for(int i = 0;i < a.size();i++){
		if(a[i] == x){
			cout << "Lucky Word" << endl << x;
			return 0;
		}
	}
	cout << "No Answer" << endl << 0;

	return 0;
}

用的是欧拉筛创建质数表然后对比的方法,样例也过不了,求调

2025/7/28 11:18
加载中...