uva 1401 - Remember the Word
一个简单的字典树上的dp;
代码:
1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #define maxn 400000 5 #define mod 20071027 6 using namespace std; 7 priority_queue<int,vector<int>,greater<int> >q; 8 struct node 9 { 10 bool f; 11 node *a[26]; 12 } no[maxn]; 13 int nonocount; 14 int d[maxn]; 15 bool vis[maxn]; 16 node *newnode() 17 { 18 node *p=no+nonocount++; 19 p->f=0; 20 for(int i=0; i<26; i++) 21 p->a[i]=NULL; 22 return p; 23 } 24 25 void insert(char *t) 26 { 27 node *root=no; 28 int l=strlen(t); 29 for(int i=0; i<l; i++) 30 { 31 if(root->a[t[i]-'a']==NULL) 32 root->a[t[i]-'a']=newnode(); 33 root=root->a[t[i]-'a']; 34 } 35 root->f=1; 36 } 37 char s[maxn],t[105]; 38 int len; 39 void query(int w) 40 { 41 node *root=no; 42 for(int i=w; i<len; i++) 43 { 44 if(root->a[s[i]-'a']==NULL)break; 45 root=root->a[s[i]-'a']; 46 if(root->f) 47 { 48 d[i]+=d[w-1]; 49 d[i]=d[i]%mod; 50 if(!vis[i+1]) 51 { 52 vis[i+1]=1; 53 q.push(i+1); 54 } 55 } 56 } 57 while(!q.empty()) 58 { 59 int v=q.top(); 60 q.pop(); 61 query(v); 62 } 63 } 64 65 66 int main() 67 { 68 int n,ca=1; 69 while(scanf("%s",s+1)!=EOF) 70 { 71 s[0]='#'; 72 memset(d,0,sizeof d); 73 d[0]=1; 74 memset(vis,0,sizeof vis); 75 vis[1]=1; 76 nonocount=0; 77 node *p=newnode(); 78 scanf("%d",&n); 79 for(int i=0; i<n; i++) 80 { 81 scanf("%s",t); 82 insert(t); 83 } 84 len=strlen(s); 85 query(1); 86 printf("Case %d: %d\n",ca++,d[len-1]%mod); 87 } 88 return 0; 89 }
View Code
转载于:https://www.cnblogs.com/yours1103/p/3396455.html
uva 1401 - Remember the Word相关推荐
- UVa 642 - Word Amalgamation
题目:给你一个单词列表.再给你一些新的单词.输出列表中又一次排列能得到此新单词的词. 分析:字符串.对每一个字符串的字母排序生成新的传f(str).总体排序,用二分来查找就可以. 说明:注意输出要满足 ...
- Word UVA - 517 状态压缩 暴力搜索
问题 https://vjudge.net/problem/UVA-517 分析 每次都循环到字典序最小的时候记录. 一共最多有2162^16216种,因为每种状态都变到字典序最小的时候,所以实际的远 ...
- UVa 10508 - Word Morphing
題目:有一些長度相同的字符串,從起始字符串每次改變一個字符,轉化成其他字符,求轉化順序. 分析:簡單題.直接求出不同字符的個數排序輸出即可. 說明:題目的條件都是迷惑的\(^o^)/~. #inclu ...
- UVa12467 Secret Word(kmp)
先将s反转得到字符串t,再通过kmp求得t的子串,使得访子串是s的最长前缀 代码参考: OJ/UVa/12467 Secret Word at master · wuli2496/OJ · GitHu ...
- STL --- UVA 123 Searching Quickly
UVA - 123 Searching Quickly Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.acti ...
- java使用jacob操作word文档
ava使用jacob操作word文档 java调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office ...
- 从隔壁兄弟那爬点网页数据,整理成word文档
packagecom.parse_report;importcom.report.utils.ParseUrl;/*** Create by JIUN 2018/7/14*/ public class ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
- Ananagrams(sort+map) UVA - 156 统计字谜
Ananagrams(sort+map) UVA - 156 统计字谜 Most crossword puzzle fans are used to anagrams - groups of word ...
最新文章
- 逐飞mini车样品说明
- 使用C#在VS Code中编写Notebook
- eclipse的editor does not contain a main type错误
- 程序员应该做的事(转自CSDN)
- 一周最新示例代码回顾 (4/23–4/29)
- 快手内容运营-数据分析面试
- 机器学习数学基础- gradient descent算法(上)
- Oracle数据库下载与安装(Windows)
- 习惯养成android软件,7款好用的习惯养成与打卡APP推荐
- EZEMC测试软件_EMI 和 EMC 仿真、测量和预兼容性测试
- bzoj4816: [Sdoi2017]数字表格
- 百度网盘等相关百度产品账号不存在问题
- Windows安装RabbitMQ的时候出现Plugin configuration unchanged
- Python pygame 坦克大战
- 如何锁定计算机桌面图标,用Desklock轻松设置和锁定桌面图标 -电脑资料
- CCF-CSP-201409-5 拼图
- 设计模式之责任链模式
- 四川成都攻防大赛技术细节
- 【无标题】HTML做一个简单漂亮的宠物网页(纯html代码)宠物 5页(二级菜单)
- 集米社浅谈下那些令网兼者疯狂的时代。
热门文章
- Servlet 调用过程
- (转) Twisted 第四部分: 由Twisted支持的诗歌客户端
- 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
- linux下php、apache、mysql、curl环境搭建
- 计算机网络 原理与实验指导书,《计算机网络原理》实验指导书.doc
- ggplot2中显示坐标轴_ggplot2作图:修改图中一切文本的外观
- vs不识别0b二进制格式_数据背后的二进制
- Java 读取excl
- res.data.data_在Data.gov进行幕后推销
- CSS 单词折行 word-wrap属性