zoukankan      html  css  js  c++  java
  • H. Fake News (medium)

    H. Fake News (medium)

    题意

    以前是给出 S T 串,问在 S 中有多少个子串为 T 的个数,子串可以不连续,保持位置相对一致。
    现在给出 n ,要你构造 S T 串。

    分析

    这种 special judge 的题目也是清奇。
    设 S 为文本串,p 为模式串,设 S = p + u,初始设 p = "a",u 为空串,那么初始 S 串中匹配到的数量 k = 1,

    1. 1 -> 2 ,设 z 为未出现过的字母,那么 p = p + z ,u = u + z,S = pzz(u 从空串变成 z),
    2. k -> 2k+1,那么 p = p + z,u = u + z + z,后面的 uzz 对应 2k,加上前面的 pz 对应 1,
    3. k -> 2k+2,p = p + z,u = z + u + z + z,那么 S = pzzuzz 。

    code

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int MAXN = 1e5 + 10;
    string p, u;
    char c;
    void so(int n) {
        if(n == 1) {
            p = "";
            c = 'a';
            p += c;
            u = "";
            c++;
        } else if(n == 2) {
            so(n / 2);
            p = p + c;
            u = u + c;
            c++;
        } else {
            if(n & 1) {
                so((n - 1) / 2);
                p = p + c;
                u = u + c + c;
                c++;
            } else {
                so((n - 2) / 2);
                p = p + c;
                string c_;
                c_ += c;
                u = c_ + u + c + c;
                c++;
            }
        }
    }
    int main() {
        int n;
        while(cin >> n) {
            so(n);
            cout << p + u << " " << p << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    尘埃里的路人乙
    SlidingMenu 插件的使用 二
    观察者模式
    Android SlidingMenu插件的使用
    Android4.2 的Http 多线程 网络传输
    Sliverlight界面研究1
    Sliverlight界面研究2
    图片切换效果(定时+编号)
    管理模型 RACI模型
    Enable NLA in XP
  • 原文地址:https://www.cnblogs.com/ftae/p/6970554.html
Copyright © 2011-2022 走看看