hoj Secret Message 解题报告
来源:互联网 发布:数据侠客行 下载 编辑:程序博客网 时间:2024/05/20 02:52
这是一道trie树题目,题意是给了个字典,然后再给你单词,看与字典里多少词匹配。这里的匹配意思是:较短的那个词是较长那个词的前缀。这里有个trick就是,同样的单词可能出现多次。(我在这里wa了几回)
#include <iostream>#define N 224288using namespace std;struct data{ int r,l,f,tot;}tree[N];int ans,first;int main(){ int n,m,i,flag,*root,j,k,a; while (scanf("%d %d",&n,&m)==2) { first=2; memset(tree,0,sizeof(tree)); for (i=0;i<n ;i++) { scanf("%d",&k); flag=0; root=&flag; *root=1; for (j=0;j<k;j++) { scanf("%d",&a); if (a) root=&tree[*root].r; else root=&tree[*root].l; if(!*root)*root=first++; } tree[*root].f++; } for (i=first-1;i>1;i--) { tree[i].tot=tree[tree[i].r].tot+tree[tree[i].l].tot+tree[i].f; } for (i=0;i<m ;i++) { scanf("%d",&k); ans=0; root=&flag; *root=1; for (j=0;j<k;j++) { scanf("%d",&a); if(a)root=&tree[*root].r; else root=&tree[*root].l; ans+=tree[*root].f; if(!*root) for(;j<k-1;j++) scanf("%d",&a); } ans+=tree[*root].tot-tree[*root].f; printf("%d\n",ans); } } return 0;}
- hoj Secret Message 解题报告
- HOJ 11958 Hyper 解题报告
- HDU 1111 Secret Code DFS 解题报告
- 解题报告 之 POJ2455 Secret Milking Machine
- HOJ 1401Gigantic Sums 解题报告
- HOJ 10001 Longest Ordered Subsequence 解题报告
- HOJ 12058 Judges' Time Calculation 解题报告
- HOJ 2691 Nail III解题报告
- HOJ 1003 Max Sum 解题报告
- PKU 2774 Long Long Message 解题报告
- POJ-2141-Message Decowding-解题报告
- HOJ 2634 网络流最小割 解题报告
- HDU 3071-Gcd & Lcm game-线段树+素因子分解-[解题报告]HOJ
- 2078 Problem H Secret Message
- Python checkio Secret Message解决方案
- AppKey, Umeng Message Secret , App Master Secret【概念】
- 解题报告
- 解题报告
- RPM包制作(1)
- 深度解析安卓样式
- 讲讲volatile的作用
- 交互设计学习笔记之《如何减少用户的等待感》【交互设计】
- Mer开发过程
- hoj Secret Message 解题报告
- VS2008中的调试技巧
- 交互设计学习笔记之《如何设计帮助系统》【交互设计】
- 抽象类和接口的区别,使用场景
- 插入mssql数据库是问号
- 汇编
- POJ 3006 Dirichlet's Theorem on Arithmetic Progressions(我的水题之路——加i个d后的第几个素数)
- Building Coder(Revit 二次开发) - 只加载需要的族类型
- 用CAJViewer识别图片文字