蒟蒻求助dalao,我只AC了一个,8个RE,1个TLE,能帮我优化一下吗?急
查看原帖
蒟蒻求助dalao,我只AC了一个,8个RE,1个TLE,能帮我优化一下吗?急
543527
leo888楼主2021/7/24 22:49

我是个bingbing 我就是逊了!! 正题: 我觉得思路是没错的,只是超时了 觉得我思路有错的大可以再看一遍 再三确认有错的话,就和我说!!! 注意:字符串+字符(串)是拼接起来! 下面来看解释: PS:求dalao回复,我想AC(实则不想被学校老师批) 嘿嘿嘿,能给一个关注吗?求求了

#include<bits/stdc++.h>
using namespace std;
string s;
stack<char>a;
char s1,s2[100001];
long long len,n,len1;
int main(){
    cin>>s>>n;
    len1=s.size();
    while(len1<n){
        len1*=2;//这个是用来减少时间的
    }
    for(long long j=0;j<len1;j++){
        len=s.size();//判断长度
        for(long long i=0;i<len;i++)a.push(s[i]);//压栈
        s1=a.top();//掏出栈顶
        a.pop();//将栈顶的是踢出
        s=s+s1;//拼接
        long long k=a.size();//栈里还有几个
        for(long long i=k-1;i>=0;i--){
            s2[i]=a.top();//掏出栈顶
            a.pop();    //将栈顶的是踢出
        }
        for(long long i=0;i<k;i++)s=s+s2[i];//拼接
    }
    cout<<s[n-1];//输出。因为我从0开始,所以要-1
}
2021/7/24 22:49
加载中...