求助RE
查看原帖
求助RE
679961
zhang_kevin楼主2023/4/16 15:57

但我觉得这种RE不科学

60分:

#include<bits/stdc++.h>
using namespace std;
int n, k, r[10001];
string s; 
inline void make(){
	for(int i = 2; i <= n; i++) r[i] = (r[i-1]*6807+2831) % 201701;
	for(int i = 1; i <= n; i++) s += (r[i]%4+'0');
	return;
}
inline int Solve(){ //求答案 
	unordered_map<string, bool> vis;
	int cnt = 0;
	s += s;
	for(int i = 0; i < n - k + 1; i++){
		string str = s.substr(i, k);
		if(!vis[str]) cnt++;
		vis[str] = true;
	}
	return cnt;
}
int main(){
	cin >> n >> k >> r[1];
	make();
	//cout << s << endl;
	cout << Solve() << endl;
	return 0;
}
2023/4/16 15:57
加载中...