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

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

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

2019-11-14 11:31:35
字體:
來源:轉載
供稿:網友

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
日本精品免费一区二区三区| 欧美黄色片在线观看| 欧美精品在线网站| 国产精品欧美久久久| 国产成人精品一区二区在线| 2019中文字幕在线观看| 久久躁日日躁aaaaxxxx| 欧美在线视频导航| 国内精品一区二区三区| 国产成人精品一区二区三区| 国产精品xxxxx| 亚洲精品视频网上网址在线观看| 正在播放欧美一区| 亚洲电影免费在线观看| 中文字幕综合在线| 国产精品吹潮在线观看| 中文字幕久热精品视频在线| 最新69国产成人精品视频免费| 久久精品亚洲国产| 国产一区二区免费| 日韩乱码在线视频| 亚洲精品国产精品自产a区红杏吧| 亚洲国产精品视频在线观看| 国产欧美一区二区三区在线| 国产精品v片在线观看不卡| 欧美资源在线观看| 亚洲成年人影院在线| 久久福利网址导航| 97在线视频免费观看| 成人黄色午夜影院| 国产成人av网| 日韩综合中文字幕| 欧洲午夜精品久久久| 中文字幕久热精品在线视频| 久久久精品国产网站| 91久久精品美女高潮| 欧美另类极品videosbestfree| 狠狠躁夜夜躁人人躁婷婷91| 成人午夜高潮视频| 亚洲偷熟乱区亚洲香蕉av| 亚洲第一免费网站| 青草热久免费精品视频| 日韩激情av在线免费观看| 伊人久久久久久久久久久| 狠狠久久五月精品中文字幕| 久久久这里只有精品视频| 国产一区二区黄| 日韩在线小视频| 亚洲图中文字幕| 欧美激情一二区| 亚洲va久久久噜噜噜| 国产精品一久久香蕉国产线看观看| 欧美日韩不卡合集视频| 日本道色综合久久影院| 国产剧情久久久久久| 国产日韩欧美成人| 欧洲亚洲免费在线| 91视频免费网站| 国产99久久精品一区二区 夜夜躁日日躁| 狠狠做深爱婷婷久久综合一区| 日韩成人av一区| 日本精品久久久久久久| 国产精品久久久91| 欧美另类精品xxxx孕妇| 亚洲va欧美va在线观看| 欧美日韩国产精品专区| 久久视频中文字幕| 伊人伊人伊人久久| 国产女精品视频网站免费| 亚洲片国产一区一级在线观看| 66m—66摸成人免费视频| 亚洲91精品在线观看| 精品国产91久久久久久老师| 97国产在线观看| 国产自产女人91一区在线观看| 亚洲精品在线观看www| 日韩亚洲欧美成人| 久久久久久高潮国产精品视| 国内精品小视频| 2020国产精品视频| 国产69久久精品成人看| 日韩女优在线播放| 在线观看日韩视频| 国内精品久久久久| 在线观看欧美日韩国产| 精品久久久久久电影| 日韩在线观看精品| 亚洲欧美国产精品专区久久| 日韩在线观看免费全集电视剧网站| 中日韩美女免费视频网址在线观看| 91色琪琪电影亚洲精品久久| 精品国内产的精品视频在线观看| 亚洲а∨天堂久久精品喷水| 97香蕉久久夜色精品国产| 欧洲亚洲免费在线| 欧美日韩国产一区在线| 91网在线免费观看| 久久影视电视剧免费网站| 日韩免费观看视频| 久久夜色精品国产亚洲aⅴ| 日韩久久精品电影| 97视频在线观看视频免费视频| 日韩成人中文字幕在线观看| 亚洲美女免费精品视频在线观看| 午夜精品一区二区三区视频免费看| 久久国产精品久久久久久| 欧美国产日本在线| 国产99久久久欧美黑人| 性色av一区二区三区| 欧美成人午夜激情视频| 狠狠久久五月精品中文字幕| 91国产一区在线| 精品国产一区av| 午夜精品久久久久久久99热浪潮| 欧美黑人一级爽快片淫片高清| 国产精品爱啪在线线免费观看| 国产视频精品免费播放| 日韩欧美成人免费视频| 日本精品久久中文字幕佐佐木| 亚洲人成在线免费观看| 亚洲第一视频在线观看| 久久免费国产视频| 精品久久久国产| 中文字幕欧美在线| 亚洲综合中文字幕在线观看| 亚洲综合日韩中文字幕v在线| 欧美性猛交xxxx免费看漫画| 亚洲精品久久久久久久久| 欧美性感美女h网站在线观看免费| 亚洲视频在线观看免费| 久久久久久久影视| 亚洲精品之草原avav久久| 日韩在线观看免费网站| 国产精品欧美激情在线播放| 日韩av手机在线看| 亚洲性线免费观看视频成熟| 欧洲成人午夜免费大片| 亚洲性线免费观看视频成熟| 久久久久久久久亚洲| 欧美日韩国产999| 亚洲的天堂在线中文字幕| 国产欧美日韩精品专区| 亚洲爱爱爱爱爱| 国产精品一区二区三区免费视频| 亚洲片国产一区一级在线观看| 日本久久久久久| 国产日产欧美a一级在线| 欧美大片在线影院| 91色中文字幕| 日本欧美一二三区| 92版电视剧仙鹤神针在线观看| 精品美女久久久久久免费| 91精品国产自产91精品| 亚洲一区制服诱惑| 欧美一级在线亚洲天堂| 日韩欧美一区二区三区| 自拍偷拍亚洲一区| 精品久久久精品| 国产精品日韩av| 亚洲人成电影网站色www| 91亚洲午夜在线| 日韩在线观看免费全集电视剧网站| 欧美多人乱p欧美4p久久| 久久手机免费视频|