#include#include#include#include#include#include#include#include#include#ifdefWIN32#definefmt64"%I64d"#else#definefmt64"%lld"#endif#definePIM_PI#" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

wordcraft(陳高遠)

系統 2364 0
    #include <cstdio>

#include <cmath>

#include <cstdlib>

#include <cstring>

#include <ctime>

#include <cctype>

#include <vector>

#include <map>

#include <set>

#include <algorithm>

#ifdef WIN32

#define fmt64 "%I64d"

#else

#define fmt64 "%lld"

#endif

#define PI M_PI

#define oo 0x13131313

#define iter iterator

#define fst first

#define snd second

#define PB push_back

#define MP make_pair

#define FOR(i, j, k) for (i = (j); i <= (k); ++i)

#define ROF(i, j, k) for (i = (j); i >= (k); --i)

#define FER(i, j, k) for (edge *i = j[k]; i; i = i->n)

#define FRE(i, a) for (i = a.begin(); i != a.end(); ++i)

using namespace std;

template<class T> inline bool minim(T &a, const T &b) {return b < a ? a = b, 1 : 0;}

template<class T> inline bool maxim(T &a, const T &b) {return b > a ? a = b, 1 : 0;}

template<class T> inline T sqr(const T &a) {return a * a;}

typedef unsigned int uint;

typedef long long int64;

typedef unsigned long long uint64;

typedef long double real;

#define maxn 100002

struct edge{int t; edge *n;}es[maxn], *adj = es, *lst[maxn];

void link(int i, int j)

{

    *(++adj) = (edge){j, lst[i]}, lst[i] = adj;

}

int sg[maxn], sgs[maxn]; bool ok[maxn];

struct function_get_sg

{

    int flag, f[maxn]; bool root;

    void dfs(int u, int sum)

    {

        if (u) {

            f[sum ^ sgs[u]] = flag;

            if (root && !(sum ^ sgs[u]))

                ok[u] = 1;

        }

        FER(e, lst, u) dfs(e->t, sum ^ sgs[u] ^ sg[e->t]);

    }

    void operator()(int u)

    {

        root = !u;

        FER(e, lst, u) sgs[u] ^= sg[e->t];

        ++flag, dfs(u, 0);

        for (int i = 0; ; ++i) if (f[i] != flag) {sg[u] = i; return;}

    }

} get_sg;

void dfs(int u)

{

    FER(e, lst, u)

        dfs(e->t);

    get_sg(u);

}

int n, maxLen; char st[maxn][105], *tt;

inline bool prefix(char *s, char *t)

{

    for (; *t; ++s, ++t) if (!*s || *s != *t) break;

    return !*s;

}

void input()

{

    int i, j; static int fa[maxn];

    scanf("%d%d\n", &n, &maxLen);

    FOR(i, 1, n) {

        char *c = st[i], *s = c;

        for (; ~(*c = getchar()) && *c != '\n'; ++c);

        *c = 0;

        for (j = i - 1; j && !prefix(st[j], s); j = fa[j]);

        link(j, i), fa[i] = j;

    }

}

void print()

{

    int i, j = 0;

    FOR(i, 1, n) if (ok[i]) {

        char *s = st[i];

        for (; *s; ++s)

            if (putchar(*s), ++j == 50) putchar('\n'), j = 0;

    }

}

int main()

{

    input();

    dfs(0);

    if (!sg[0]) puts("Can’t win at all!!"), exit(0);

    print();

}
  


wordcraft(陳高遠)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 香蕉成人国产精品免费看网站 | 国产香蕉一区二区精品视频 | 日韩欧美在线看 | 奇米777影视成人四色 | 久久综合亚洲伊人色 | 久久99久久99精品观看 | 97色在线视频 | 欧美啪啪小视频 | 婷婷综合久久中文字幕 | 国产二区三区毛片 | 国产成人a视频在线观看 | 色综七七久久成人影 | 天天干夜操 | 久久香蕉影视 | 欧美性xxx免费看片 欧美性白人顶级hd 欧美性插视频 | 国产高清在线精品一区免费97 | 国产欧美综合在线一区二区三区 | 国产一级视频久久 | 久久精品a | 亚洲女精品一区二区三区 | 99热最新网站 | 日韩精品一区二区三区中文精品 | 亚洲高清美女一区二区三区 | 一级大片免费观看 | 欧美日韩视频一区三区二区 | 国产精品96久久久久久久 | 欧美高清一区二区三 | 亚洲综合网址 | 欧洲做视频在线观看 | 青草国产视频 | 国产精品成人一区二区1 | 久久婷婷久久一区二区三区 | 国产只有精品 | 毛片大全免费看 | 最新中文字幕在线播放 | 在线黄色影院 | 波多野结衣高清在线播放 | 美日韩视频 | 亚洲精品乱码中文字幕无线 | 亚洲一区在线免费观看 | 国产成人黄色在线观看 |