日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[AC自动机][dfs] 洛谷 P2444 病毒

發布時間:2024/10/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [AC自动机][dfs] 洛谷 P2444 病毒 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

二進制病毒審查委員會最近發現了如下的規律:某些確定的二進制串是病毒的代碼。如果某段代碼中不存在任何一段病毒代碼,那么我們就稱這段代碼是安全的。現在委員會已經找出了所有的病毒代碼段,試問,是否存在一個無限長的安全的二進制代碼。

示例:

例如如果{011, 11, 00000}為病毒代碼段,那么一個可能的無限長安全代碼就是010101…。如果{01, 11, 000000}為病毒代碼段,那么就不存在一個無限長的安全代碼。

任務:

請寫一個程序:

1.在文本文件WIR.IN中讀入病毒代碼;

?2.判斷是否存在一個無限長的安全代碼;

?3.將結果輸出到文件WIR.OUT中。

輸入輸出格式

輸入格式:

?

在文本文件WIR.IN的第一行包括一個整數n(n\le 2000)(n2000),表示病毒代碼段的數目。以下的n行每一行都包括一個非空的01字符串——就是一個病毒代碼段。所有病毒代碼段的總長度不超過30000。

?

輸出格式:

?

在文本文件WIR.OUT的第一行輸出一個單詞:

TAK——假如存在這樣的代碼;

NIE——如果不存在。

?

輸入輸出樣例

輸入樣例#1:
3 01 11 00000 輸出樣例#1:
NIE

?

題解

  • 題目大意是要求是否有沒有被匹配的無限長代碼
  • 這題有點奇怪,求的無限長代碼
  • 那么就是要一直失配,那么可以將fail邊(失配邊)當成原樹邊來做
  • 這樣的話,其實就是要在trie樹上求沒有匹配的字串的一個環,dfs做

代碼

1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <queue> 6 using namespace std; 7 bool vis[30010],g[30010]; 8 char ch[30010]; 9 int n,cnt,f[30010][4]; 10 queue<int> Q; 11 void insert(char ch[],int len) 12 { 13 int p=0; 14 for (int i=1;i<=len;i++) 15 if (f[p][ch[i]-'0']==0) f[p][ch[i]-'0']=++cnt,p=cnt; 16 else p=f[p][ch[i]-'0']; 17 f[p][2]=true; 18 } 19 void getfail() 20 { 21 if (f[0][0]>0) Q.push(f[0][0]); 22 if (f[0][1]>0) Q.push(f[0][1]); 23 while (!Q.empty()) 24 { 25 int u=Q.front(); Q.pop(); 26 for (int i=0;i<=1;i++) 27 if (f[u][i]>0) 28 { 29 Q.push(f[u][i]); 30 int v=f[u][3]; 31 while (v&&f[v][i]<=0) v=f[v][3]; 32 if (f[v][i]<=0) f[f[u][i]][3]=0; 33 else 34 { 35 f[f[u][i]][3]=f[v][i]; 36 if (f[f[v][i]][2]) f[f[u][i]][2]=true; 37 } 38 } 39 else f[u][i]=f[f[u][3]][i]; 40 } 41 } 42 void dfs(int x) 43 { 44 vis[x]=true; 45 for (int i=0;i<=1;i++) 46 if (vis[f[x][i]]) { printf("TAK"); exit(0); } 47 else 48 if (!f[f[x][i]][2]&&!g[f[x][i]]) g[f[x][i]]=true,dfs(f[x][i]); 49 vis[x]=false; 50 } 51 int main() 52 { 53 scanf("%d",&n); 54 for (int i=1;i<=n;i++) scanf("%s",ch+1),insert(ch,strlen(ch+1)); 55 getfail(); 56 dfs(0); 57 printf("NIE"); 58 }

?

轉載于:https://www.cnblogs.com/Comfortable/p/9807056.html

總結

以上是生活随笔為你收集整理的[AC自动机][dfs] 洛谷 P2444 病毒的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女扒开内裤让男人捅 | 欧美卡一卡二 | 国精品一区 | 无码日韩精品一区二区 | 国产女人被狂躁到高潮小说 | 小宝贝真紧h军人h | 手机在线观看免费av | 日韩欧美在线视频播放 | 日本一区二区人妻 | 中国国产黄色片 | 黄色片链接| 91网址在线播放 | 男人天堂成人 | 国产成人精品免高潮在线观看 | 丰满熟妇人妻中文字幕 | chinese麻豆gay勾外卖 | 国语精品久久 | 熟女俱乐部五十路六十路av | 亚洲a视频在线 | 国产精品揄拍一区二区 | 激情网五月 | 在线精品视频一区 | 色综合天天综合网天天看片 | 亚洲自偷自偷偷色无码中文 | 激情久久中文字幕 | 我和公激情中文字幕 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 色呦呦在线免费观看 | 欧美国产一区二区三区 | a资源在线观看 | 生活片一级片 | 久草婷婷 | 国产精品传媒在线 | 免费搞黄网站 | 国产在线视频资源 | 日韩v片 | 亚洲高清视频免费观看 | 色图自拍 | 调教丰满的已婚少妇在线观看 | 欧美老司机 | 玖色视频 | 欧美大色网 | 黄色污污网站 | 免费不卡毛片 | 欧美天堂网站 | 另类激情视频 | 成人免费视频国产免费网站 | av地址在线 | 婷婷六月天 | 日日综合网 | 国产又黄又粗又猛又爽 | www狠狠爱 | 91成人观看 | 亚洲第一激情 | 97精品久久久 | 涩涩涩在线视频 | 国产精品一区二区av日韩在线 | 亚洲精品乱码久久久久久蜜桃欧美 | 欧美色激情 | 久久二区三区 | 国产精品久久久爽爽爽麻豆色哟哟 | 美国爱爱视频 | 中文字幕第3页 | 久久久成人精品视频 | 国产精品永久在线观看 | 中文字幕2021 | 中文字幕一区久久 | 欧美亚洲国产精品 | 色国产视频| 一区二区三区波多野结衣 | 999热精品| 日韩欧美三级在线观看 | 国产aa毛片 | 精品久久精品久久 | 奇米激情 | 美脚の诱脚舐め脚视频播放 | 日本打白嫩屁股视频 | av日韩免费 | 日韩精品手机在线 | 欧美黑人性猛交xxxx | 欧美成人不卡视频 | 伊人国产一区 | 日韩夜夜高潮夜夜爽无码 | 亚洲成年人在线观看 | av网址导航 | 欧美日韩国产成人在线 | 日本少妇18p | 亚洲国产一区二区三区 | 一级免费片| 久久人妻少妇嫩草av无码专区 | 免费暧暧视频 | 九九热色 | 国产精品毛片一区二区在线看舒淇 | 天天操天天射天天 | 99re在线视频免费观看 | 一本到视频 | 久久韩国| 4438x全国最大成人网 | 性欧美巨大 |