zoukankan      html  css  js  c++  java
  • A.DongDong破密码

    链接:https://ac.nowcoder.com/acm/contest/904/A

    题意:

    DongDong是一个喜欢密码学的女孩子,她养的萨摩耶叼着一张带着加密信息的纸条交给了她,如果她不能破解这张密码,萨摩耶是不会高兴的。

    给定n,m,给出长度为n的01串,每次向后移动一位,移动m-1次,最后求出这n+m-1位每一位的异或值(0^0=0,1^1=0,0^1=1)成为密码。(如下图这样,此时n=6,m=3)


    思路:

    从前往后找,可以看出原串的m位置到n位置中的p位置是根据答案串来得到。

    即p位置为0即答案串p-m+1到p位置中1的个数为偶数,为1则为奇数。

    两边的位置串同理,只不过范围是从1-p位置跟p-n位置1的个数。

    代码:

    #include <bits/stdc++.h>
     
    using namespace std;
     
    typedef long long LL;
    const int MAXN = 3e5 + 10;
    const int MOD = 1e9 + 7;
    int n, m, k, t;
     
    int main()
    {
        cin >> n >> m;
        string s;
        cin >> s;
        int cnt = 0;
        string res;
        for (int i = 0;i < n;i++)
        {
            if (i >= m && res[i-m] == '1')
                cnt--;
            if (s[i] == '0')
            {
                if (cnt % 2 == 0)
                    res += '0';
                else
                {
                    res += '1';
                    cnt++;
                }
            }
            else
            {
                if (cnt%2 == 1)
                {
                    res += '0';
                }
                else
                {
                    res += '1';
                    cnt++;
                }
            }
        }
        cout << res << endl;
     
        return 0;
    }
    

      

  • 相关阅读:
    2021.10 好运气
    2021.9 抢购
    2021.8 全周期工程师
    2021.7 创业者
    2021.6 过年
    jenkins学习17
    httprunner 3.x学习18
    httprunner 3.x学习17
    python笔记57-@property源码解读与使用
    httprunner 3.x学习16
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10989562.html
Copyright © 2011-2022 走看看