Fikuzza @ 2023-08-22 09:57:59
#include <bits/stdc++.h>
using namespace std;
string s,f;
long long n,ls,lf;
int main()
{
cin>>s>>n;
ls=s.size();
while(ls<n)
{
lf=ls;
f=s;
for(long long i=1;i<ls;i++)
{
f[i]=s[i-1];
}
f[0]=s[ls-1];
s+=f;
ls=s.size();
}
cout<<s[n-1];
return 0;
}
by 1q2zb @ 2023-08-22 10:23:54
MLE说明string长度超出限制。
本蒟蒻也想不出来怎么写代码,,,
似乎可以通过某些数学运算得出n在s的位置。
希望对你有帮助
99999999999999999
by Fikuzza @ 2023-08-22 11:01:45
@1q2zb 那咋办呀呜呜呜
by GUANJUNHOU @ 2023-09-18 16:28:56
递推的题
两个处理 n是str的长度,i是递推回去的位置
(1)i+n/2+1=new place
(2)n+1=new place
没了
by wch666 @ 2023-09-19 17:23:13
@Fikuzza
我不记得是谁教我的
我现在也不记得怎么写
#include<bits/stdc++.h>
using namespace std;
long long n,x;
string s;
int main()
{
cin>>s>>n;
long long len=s.size();
while(n>len)
{
x=len;
while(x<n)
x*=2;
x/=2;
n-=x+1;
if(n == 0)
n=x;
}
cout<<s[n-1];
return 0;
}
by Fikuzza @ 2023-09-19 22:07:04
@wch666 我在台上讲的这都什么时候了。。。
by wch666 @ 2023-09-20 20:13:47
(⊙o⊙)…