40分 6MLE求助!

P3612 [USACO17JAN] Secret Cow Code S

yzh091028 @ 2024-07-17 11:42:51

#include<bits/stdc++.h>
using namespace std;
char dd(string s,long long L,long long yq){
    if(L>=yq)return s[yq-1];    
    s+=s[L-1];
    for(long long i=0;i<=L-2;i++){
        s+=s[i];
    }
    return dd(s,L*2,yq);
}
int main(){
    string s;
    long long n;
    cin>>s>>n;
    cout<<dd(s,s.size(),n);
}

by HIMkythen @ 2024-07-26 14:55:44

这道题N<=1e18,你模拟写法必定会爆string的,要用数学方法去想这种变换后每一位字母的对应关系


|