zoukankan      html  css  js  c++  java
  • What Are You Talking About HDU

    Miku

    字典树部分非常好解决,只要把最后每个单词结尾处记录下翻译成了啥

    但是输出很麻烦,要处理空格,回车,换行和标点符号

    不过有string在,还行

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<istream>
    using namespace std;
    int n;
    string s;
    struct t{
    	int ne[28];
    	int cnt;
    }tr[400001];
    int p;
    int l;
    int x;
    int po;
    void add(){
    	//cout<<s<<" "<<l<<endl;
    	p=0;
    	for(int i=0;i<l;++i){
    		x=s[i]-'a'+1;//这么干就不会有0了 
    		if(!tr[p].ne[x]){//没有就建 
    			po++;
    			tr[p].ne[x]=po;		
    		}
    		p=tr[p].ne[x];
    		tr[p].cnt++;//被经过次数即为前缀数 
    	}
    	return ;
    }
    int query(){
    	p=0;
    	for(int i=0;i<l;++i){
    		x=s[i]-'a'+1;
    		if(!tr[p].ne[x]){ 
    			return 0;
    		}else{
    			p=tr[p].ne[x];
    		}
    	}
    	return tr[p].cnt;
    }
    
    int main(){
    	while(getline(cin,s)){
    		l=s.length();
    		if(l==0)
    		break;
    		add();
    	}	
    	while(getline(cin,s)){
    		l=s.length();
    		cout<<query()<<endl;;
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    JavaEE高级-JPA学习笔记
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13427633.html
Copyright © 2011-2022 走看看