码迷,mamicode.com
首页 > 其他好文 > 详细

luogu 题目选做

时间:2019-10-25 18:47:49      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:namespace   暴力   section   clu   mes   for   oid   http   str   

1025

P1019 单词接龙

往年的\(noip\)原题,纯搜索吧,没啥可讲的,直接暴力枚举,暴力判断就行

没有必要每次都存一个很大的字符串,只要存当前的字符串就行了

每个字符串可以用两次

不能包含关系。。。好像也没啥了吧

#include <bits/stdc++.h>
using namespace std;


const int N = 23;
int n , ans = -1 , v[N] ;
string str[N];

inline int check( string s1 , string s2)
{
    register bool flag;
    for( register int i = 1 ; i < min( s1.size() , s2.size() ) ; i ++ )
    {
        flag = 1;
        for( register int j = 0 ; j < i && flag ; j ++ )
        {
            if( s1[s1.size() - i + j ] != s2[j] ) flag  = 0;
        }
        if( flag ) return i;
    }
    return 0;
}

inline void dfs( string cur , int x )
{
    ans = max( ans , x );
    for( register int i = 1 , k ; i <= n ; i ++ )
    {
        if( v[i] >= 2 ) continue;
        k = check( cur , str[i] );
        if( k )
        {
            v[i] ++;
            dfs( str[i] , x + str[i].size() - k );
            v[i] --;
        }
    }
    return ;
}

int main()
{
    cin >> n;
    for( register int i = 1 ; i <= n + 1 ; i ++ ) cin >> str[i];
    dfs( ' ' + str[ n + 1 ] , 1 );
    cout << ans << endl;
    return 0;
}

luogu 题目选做

标签:namespace   暴力   section   clu   mes   for   oid   http   str   

原文地址:https://www.cnblogs.com/Mark-X/p/11739288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!