蒟蒻求助,用了bitset第九个点还是过不去,而且整体的时间复杂度还升高了!!!!
#include<bits/stdc++.h>
#include<vector>
using namespace std;
int main()
{
string a;
long long n,t;
cin >> n >> t >> a;
vector<string> arr;
arr.push_back(a);
string b = a;
int flag = 0;
int x = 1;
while(x<n)x<<=1;t=t%x;
while(t--)
{
string c = b;
for(int i = 1;i < b.size();i++)
b[i] = ((int)(c[i]-'0')^(int)c[i-1]-'0')+'0';
if(b == *arr.begin())
{
flag = 1;
break;
}
else
{
arr.push_back(b);
continue;
}
}
if(flag)
cout << arr[t%(arr.size())] << endl;
else
cout << b;
return 0;
}