剛剛看完ac自動兩天就發現了這道自動機的題目,這題不是很難,但是有幾個細節需要注意一下,首先**中的病毒型別不能重複,也就是說沒有可能出現兩個同樣的病毒,我的處理方法是利用set這樣的話判重和排序都省了,其次輸出的**編號和最終的病毒**數不是一樣的(我就是卡在這裡一直wa),爆棧的童鞋記得size是128,因為是全部可見字元,然後base是31也是同樣的道理,這樣就應該不會re了。
#include
#include
using namespace std;
const int size = 128;
struct node
}
}*q[100005];
int num;
void insert(char *a, node *root)
p = p -> son[k];
}
p -> id = ++ num;
p -> count ++;
}void build_ac_automation(node *root)
else
p = p -> fail;
}if (p == null)temp -> son[i] -> fail = root;
}q[tail ++] = temp -> son[i];
}
}
}
}sets;
int find(node *root, char *a)
}return ans;
} char word[210], word1[10100];
int main()
build_ac_automation(root);
scanf("%d", &t);
int nc = 0;
int an = 0;
while (t --)
printf("\n");
}
}printf("total: %d\n", an);
return 0;
}
HDU 2896 病毒侵襲
那什麼可見字元是坑爹的吧 include include include include include include include include include include include include include include include include include i...
hdu 2896 病毒侵襲
本題需要注意幾個方面 1 字元的範圍是可見的ascll碼字元,陣列要開到127。2 雖然題目的資料弱了,但是自己要考慮的周全。資料一 2 sherhe2 shesher答案 web 1 2 web 2 1 2 total 2資料二 2aaa 1aaaa答案 web 1 1 2 total 1 inc...
Hdu 2896 病毒侵襲
題意 給出n個模式串,再給出m個字串,問這些字串包含那些模式串 思路 ac自動機,先以模式串構建字典樹,再以字典樹構建fail標記,fail標記類似於kmp的next字首陣列,可以跳轉到重複字首的結尾,查詢的時候利用fail標記就可以提高多模式串匹配的效率 include include inclu...