uestc oj 1828 中二少女与字符串
来源:互联网 发布:mac登陆新浪邮箱 编辑:程序博客网 时间:2024/05/01 02:57
中二少女与字符串
第一次写字典树 参照了别人的写法,下面代码是自己所写。
此题运用字典树
因为此题要计算不重复的所有好串个数运用字典树,每次新建一个节点就res++ 当遇到相同的好串的时候一定不会新建
节点的。
建立一个结构体node 里面是26个相同的node节点next 分别对应着a~z26个字母
首先建立一个空树 当后继节点next[i] 为空时 说明这个节点的串还未找到
在输入待测字符串和坏串最大长度之后,求出字符串的长度然后依次从第一个字母开始遍历数组
每次遍历的结束条件是坏字母个数大于k或者到达字符串结束处
每次新建节点时res++(将res设为全局变量) 最后就可以输出总数
字典树时间复杂度:它的插入和查询复杂度都为O(len),Len为单词(前缀)长度
空间复杂度为O(26^n)这也太大了
第一次写字典树 参照了别人的写法,下面代码是自己所写。
此题运用字典树
因为此题要计算不重复的所有好串个数运用字典树,每次新建一个节点就res++ 当遇到相同的好串的时候一定不会新建
节点的。
建立一个结构体node 里面是26个相同的node节点next 分别对应着a~z26个字母
首先建立一个空树 当后继节点next[i] 为空时 说明这个节点的串还未找到
在输入待测字符串和坏串最大长度之后,求出字符串的长度然后依次从第一个字母开始遍历数组
每次遍历的结束条件是坏字母个数大于k或者到达字符串结束处
每次新建节点时res++(将res设为全局变量) 最后就可以输出总数
字典树时间复杂度:它的插入和查询复杂度都为O(len),Len为单词(前缀)长度
空间复杂度为O(26^n)这也太大了
#include<cstdio>#include<cstring>#define N 4000000struct node{ node* next[26]; };node tree[N]; int T,len,res,K; char num[26]; char s[1600]; char *str;int id;node* createNewId(){ for(int i=0;i<26;i++) tree[id].next[i] = NULL; return &tree[id++];}void find(node* now,char* str,int count){ if(num[*str-'a']=='0') count++; if(count>K||*str=='\0') return; if((now->next[*str-'a'])!=NULL) { find(now->next[*str-'a'],str+1,count); } else { res++; now->next[*str-'a'] = createNewId(); find(now->next[*str-'a'],str+1,count); }}int main(){ //freopen("1.txt","r",stdin); scanf("%d",&T); while(T--) { id =0; node* root = createNewId(); scanf("%s",s); scanf("%s",num); //printf("%c",num['b'-'a']); scanf("%d",&K); len = strlen(s); res = 0; for(int i =0;i<len;i++) { str = &s[i]; find(root,str,0); } printf("%d\n",res); } return 0;}
- uestc oj 1828 中二少女与字符串
- 2016 UESTC Training for Search Algorithm & String H - 中二少女与字符串 Trie 字典树
- uestc oj 851方老师与素数
- 南阳OJ 1204 魔法少女
- uestc oj 1793 Kalindrome
- uestc oj 1227 Hotel
- uestc oj 1500 AreYouBusy
- uestc oj 1484 STAMPS
- uestc oj 1272 Sticks
- uestc oj 1230 Picture
- uestc oj 1223 Islands
- uestc oj 1001 DotNotation
- 吐槽 uestc oj
- uestc oj 1876 聚会
- UESTC OJ 1830
- UESTC OJ Windy 数
- 【感人】少女与小偷
- 少女与小偷
- 数据库大作业总结
- uestc oj 1832 Never Wait for Weights
- Design patterns IV : Decorator/Wrapper Pattern
- uestc oj 1827 种蘑菇的魔理沙
- 失败的 Codeforce
- uestc oj 1828 中二少女与字符串
- oracle 11g PL/SQL Programming学习十
- uestc oj 1223 Islands
- JIRA 6.0.1 (ZIP Archive)最新破解方法,绝对可用
- MFC 基础知识:主对话框与子对话框(一)
- Codeforces Round #187 (Div. 2)
- Deep Learning(深度学习)学习笔记整理系列
- 迄今见过的最好的职业规划文章
- MFC 基础知识:主对话框与子对话框(二)