90pts|萌新求助
查看原帖
90pts|萌新求助
429818
Smithespics楼主2023/3/28 22:02

蒟蒻求助,用了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;
}
2023/3/28 22:02
加载中...