打表发现一个串会周期性出现,而当一个串第二次出现的时候,可发现其周期性,将剩余次数取模即可
#include<bits/stdc++.h>
using namespace std;
string s,tmp;
long long t;
int n;
unordered_map<string,int> mp;
int main(){
cin>>n>>t>>s;
for(int i=1;t>0;i++){
tmp=s;
for(int i=1;i<n;i++)
tmp[i]=(s[i-1]-'0')^(s[i]-'0')+'0';
s=tmp;
t--;
if(!mp[s]){
mp[s]=i;
}else{
t%=(i-mp[s]);
}
}
cout<<s;
}
/*
5 3
10110
*/