亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Codeforces 514C Watto and Mechanism【字典樹+Dfs】好題!

2019-11-14 10:09:12
字體:
來源:轉載
供稿:網友

C. Watto and Mechanismtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

Watto, the owner of a spare parts store, has recently got an order for the mechanism that can PRocess strings in a certain way. Initially the memory of the mechanism is filled withn strings. Then the mechanism should be able to process queries of the following type: "Given strings, determine if the memory of the mechanism contains stringt that consists of the same number of characters ass and differs from s in exactly one position".

Watto has already compiled the mechanism, all that's left is to write a program for it and check it on the data consisting ofn initial lines and m queries. He decided to entrust this job to you.

Input

The first line contains two non-negative numbers n andm (0?≤?n?≤?3·105,0?≤?m?≤?3·105) — the number of the initial strings and the number of queries, respectively.

Next follow n non-empty strings that are uploaded to the memory of the mechanism.

Next follow m non-empty strings that are the queries to the mechanism.

The total length of lines in the input doesn't exceed 6·105. Each line consistsonly of letters 'a', 'b', 'c'.

Output

For each query print on a single line "YES" (without the quotes), if the memory of the mechanism contains the required string, otherwise print "NO" (without the quotes).

ExamplesInput
2 3aaaaaacacacaaabaaccacacccaaacOutput
YESNONO

題目大意:

給你N個原串,以及M個查詢串。

每個查詢串詢問的是,原串中是否有一個字符串,通過改變一個字母就能得到這個字符串(要求其他位子的字符都要相等)。

思路:

1、首先字典樹建樹,因為只有3種字母,而且輸入的總長度也并不大,所以256M的內存是肯定夠用的,這里大可不必擔心。

2、建好樹之后窩一開始只會暴力啊。暴力改變每個查詢串每個位子上的字符,然后查詢,顯然時間復雜度達到了O(M*(2len)^2);那么考慮能否通過剪枝來優化。

剪枝優化是的確存在的,然而我們不能很簡單的找到剪枝點。

那么考慮Dfs。

對于不能繼續查詢的部分(p==NULL)進行剪枝。

細節處理有很多。大家注意一點就好。

Ac代碼:

#include<stdio.h>#include<string.h>#include<stdlib.h>using namespace std;#define maxn 3typedef struct tree{    tree *nex[maxn];    int v;    int val;}tree;tree root;void init(){    for(int i=0;i<maxn;i++)    {        root.nex[i]=NULL;    }}void creat(char *str,int va){    int len=strlen(str);    tree *p=&root,*q;    for(int i=0;i<len;i++)    {        int id=str[i]-'a';        if(p->nex[id]==NULL)        {            q=(tree *)malloc(sizeof(root));            for(int j=0;j<3;j++)            {                q->nex[j]=NULL;            }            p->nex[id]=q;        }        p=p->nex[id];        if(i==len-1)        {            p->val=va;        }    }}char a[600600];int find(int i,int flag,tree *p,int lenn){    if(p==NULL)return 0;    int id=a[i]-'a';    tree *pre=p;    p=pre->nex[id];    if(i==lenn-1)    {        if(p!=NULL&&flag==1&&p->val==1)        return 1;        else if(flag==0)        {            p=pre->nex[(id+1)%3];            if(p!=NULL&&p->val==1)return 1;            p=pre->nex[(id+2)%3];            if(p!=NULL&&p->val==1)return 1;        }        return 0;    }    int tmp=0;    if(p!=NULL)if(find(i+1,flag,p,lenn)==1)tmp=1;    if(flag==0)    {        p=pre->nex[(id+1)%3];        if(p!=NULL)if(find(i+1,1,p,lenn)==1)tmp=1;        p=pre->nex[(id+2)%3];        if(p!=NULL)if(find(i+1,1,p,lenn)==1)tmp=1;    }    return tmp;}int n,m;int main(){    while(~scanf("%d%d",&n,&m))    {        init();        for(int i=0;i<n;i++)        {            scanf("%s",a);            creat(a,1);        }        while(m--)        {            int flag=0;            scanf("%s",a);            tree *p=&root;            if(find(0,0,p,strlen(a))==1)printf("YES/n");            else printf("NO/n");        }    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情xxxx| 亚洲精品97久久| 国产精品日日摸夜夜添夜夜av| 亚洲精品国产精品国自产观看浪潮| 综合136福利视频在线| 日韩成人在线免费观看| 日韩在线中文字| 国产欧美精品va在线观看| 成人黄色片网站| 国产亚洲精品高潮| 精品国偷自产在线视频| 亚洲资源在线看| 亚洲毛片一区二区| 成人免费网站在线看| 色综合老司机第九色激情| 欧美精品九九久久| 欧美精品video| 欧美午夜电影在线| 亚洲欧美自拍一区| 国产亚洲精品久久久优势| 欧美高清videos高潮hd| 91在线国产电影| 九色精品美女在线| 97视频在线观看亚洲| 国产亚洲精品激情久久| 亚洲欧美国产一本综合首页| 国产精品视频导航| 国产精品国产福利国产秒拍| 亚洲欧美一区二区精品久久久| 久久久亚洲福利精品午夜| 欧美一级在线亚洲天堂| 日韩成人av在线播放| 欧美与欧洲交xxxx免费观看| 国产精品专区一| 国产精品免费网站| 欧美xxxx综合视频| 欧美大奶子在线| 亚洲v日韩v综合v精品v| 亚洲人永久免费| 性欧美暴力猛交69hd| 在线观看欧美成人| 日本高清不卡的在线| 欧美日韩国产精品一区二区三区四区| 国产精品一区二区电影| 亚洲国产一区二区三区在线观看| 久久久久久久久久久免费| 欧美性黄网官网| 福利一区福利二区微拍刺激| 久久99国产精品久久久久久久久| 亚洲国产精品va在线看黑人动漫| 日韩在线资源网| 精品中文字幕乱| 亚洲自拍偷拍网址| 久久久成人精品| 国产精品∨欧美精品v日韩精品| 亚洲级视频在线观看免费1级| 成人在线免费观看视视频| 欧美成人免费网| 国产一区在线播放| 久久久久久久爱| 在线精品高清中文字幕| 日韩精品中文字幕在线观看| 国产日韩在线亚洲字幕中文| 97视频在线观看免费| 国产视频综合在线| 欧洲成人免费视频| 中文字幕免费精品一区| 亚洲欧洲一区二区三区久久| 成人精品久久久| 欧美激情第三页| 日本久久久久久久久久久| 久久国产精品首页| 7777免费精品视频| 91精品国产91久久久久久最新| 成人写真福利网| 91av在线视频观看| 55夜色66夜色国产精品视频| 日韩在线观看网站| 国产精品99久久久久久久久| 欧美日韩aaaa| 92国产精品视频| 国产精品三级久久久久久电影| 欧美综合一区第一页| 日本韩国在线不卡| 成人激情春色网| 久久久久久久成人| 日韩中文理论片| 日韩a**站在线观看| 日韩av在线免费看| 欧美黑人性视频| 91网在线免费观看| 日韩免费在线电影| 精品人伦一区二区三区蜜桃网站| 少妇激情综合网| 欧美成人免费大片| 日韩女优在线播放| 久久久影视精品| 色噜噜久久综合伊人一本| 久久99精品久久久久久噜噜| 国产日韩欧美自拍| 亚洲福利在线视频| 国产成人精彩在线视频九色| 81精品国产乱码久久久久久| 久久久亚洲国产天美传媒修理工| www.久久久久| 久久97精品久久久久久久不卡| 日本精品久久久久久久| 国产91精品青草社区| 久久久精品久久久久| 国产不卡在线观看| 欧美国产精品va在线观看| 欧美专区中文字幕| 亚洲国产精品久久久久久| 97精品伊人久久久大香线蕉| 欧美高清无遮挡| 一区二区欧美在线| 欧美区在线播放| 久久久久成人网| 91精品视频专区| 午夜精品一区二区三区视频免费看| 欧美性猛交xxxxx水多| 亚洲一级一级97网| 成人高h视频在线| 国产在线观看一区二区三区| 国产精品丝袜久久久久久不卡| 亚洲精选在线观看| 久久影视免费观看| 久久精品成人一区二区三区| 亚洲有声小说3d| 亚洲欧美福利视频| 久久久精品国产亚洲| 亚洲欧美制服另类日韩| 久久精品一偷一偷国产| 国产精品黄页免费高清在线观看| 亚洲伦理中文字幕| 国产精品第二页| 国产国语刺激对白av不卡| 亚洲一区国产精品| 欧美成人自拍视频| 91精品久久久久久久久久久久久久| 精品久久久久久久久久久久久| 日产精品久久久一区二区福利| 日韩av快播网址| 日本最新高清不卡中文字幕| 欧美激情精品久久久久久免费印度| 亚洲的天堂在线中文字幕| 久久综合色影院| 亚洲欧美一区二区三区四区| 欧美性xxxxxx| 国产精品久久久久久久久久99| 日本亚洲精品在线观看| 亚洲精品99999| 国产精品成人aaaaa网站| 久久精品99无色码中文字幕| 欧美黑人性猛交| 国产精品视频精品| 全亚洲最色的网站在线观看| 中文字幕亚洲欧美日韩高清| 俺去了亚洲欧美日韩| 国产精品777| 欧美肥臀大乳一区二区免费视频| 亚洲欧美另类中文字幕| 欧美另类在线观看| 国产精品扒开腿做爽爽爽的视频|