数据疑似过水
查看原帖
数据疑似过水
555809
houmy楼主2023/10/1 09:26

如题,用一种暴力哈希的做法也能做到77分。取连续的五位,取所有组合中字典序最小的位置。代码:

#include<bits/stdc++.h>
using namespace std;
int pos[11881380];
string s;
int n;
int main(){
    cin>>n;
    string k;
    while(cin>>k)s+=k;
    s+=s;
    s+="zzzzz";
    for(int i=0;i<n;i++){
        pos[(s[i]-'a')*456976+(s[i+1]-'a')*17576+(s[i+2]-'a')*676+(s[i+3]-'a')*26+(s[i+4]-'a')]=i+1;
    }
    for(int i=0;i<=11881376;i++){//=26^5
        if(pos[i]){
            cout<<pos[i]-1;
            return 0;
        }
    }
}
2023/10/1 09:26
加载中...