• 【搜索】单词接龙


    原题传送门

    思路


    这道题主要考察搜索与字符串处理的能力,但也能在答案中看到图论思想的影子,所以这是一道比较考察范围比较广的题目。
    这道题的重点其实在于字符串处理,即用尽可能少的时间复杂度分辨两个单词是否可以接龙,搜索方面无需优化,只要字符串处理函数比较快,大爆搜也可以轻松AC,因此,这道搜索题其实实在考察字符串。

    Code


    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<algorithm>
    #include<cstdlib>
    #include<cmath>
    #include<stack>
    #include<map>
    using namespace std;
    
    int e[41][41],b[41]; 
    int i,j,n,maxl;
    string w[41];
    
    int l(string a,string b)
    {
    	for(int i=1;i<=a.length();i++)
    	{
    		string t=a.substr(a.length()-i,i);
        	if(t.length()<=b.length()&&t==b.substr(0,t.length()))
    				return b.length()-t.length();
    	}
    	return 0;
    }
    
    void dfs(int no,int l)
    {
    	if(l>maxl)
    		maxl=l;
    	int i;
    	b[no]=1;
    	for(i=0;i<=2*n;i++)
    	{
    		if(b[i]==0&&e[no][i]>0)
    		{
    			dfs(i,l+e[no][i]);
    		}		
    	}
    	b[no]=0;
    }
    
    int main()
    {
        cin>>n;
        for(i=1;i<=n;i++)
        {
    		cin>>w[i]; 
    		w[i+n]=w[i];
    	}
        cin>>w[0];
        for(i=0;i<=2*n;i++)
        	for(j=0;j<=2*n;j++)
        		e[i][j]=l(w[i],w[j]);
        dfs(0,1);
        cout<<maxl;
        return 0;
    }
    
  • 相关阅读:
    IP通信02
    h5网页 微信分享给好友,朋友圈-tp5
    微博常用链接
    Sublime Text3之安裝Emmet及使用技巧
    JS 写入到文件
    PHP之httpRequest
    图片上传预览
    滚动数字时钟
    旋转
    创建JavaScript标准对象--面试经常遇到的问题
  • 原文地址:https://www.cnblogs.com/gongdakai/p/11440317.html
Copyright © 2020-2023  润新知