luogu 题目选做

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;
}

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

时间: 2024-10-17 16:05:53

luogu 题目选做的相关文章

jzyz 题库 题目选做

题库中也有很多我想不出来的模拟赛的题目.做还是必要的. LINK:水题一道 LINK :ww 原文地址:https://www.cnblogs.com/chdy/p/11488468.html

CF 题目选做

写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个人 初始值为R 有n项工作每项工作有两种属性 a和b 当且仅当 R>=a时可以完成这项任务 且R+=b; 每项任务只能完成一次 问能否把所有工作完成.注:b可能为负. 怎么做?显然对于b>=0的工作我们按照a由小到大的顺序直接做如果有不能完成的任务的话 那便一定不能完成.考虑如何做负值的工作? 想

jzyzoj题目选做

1025 P1815 一道贪心,喵? 好吧其实就是个贪心,最大值比较简单,最小值不太好搞看看代码自己理解 #include <bits/stdc++.h> #define LL long long using namespace std; inline int read() { register int x = 0; register char ch = getchar(); while( ch < '0' || ch > '9' ) ch = getchar(); while(

20165201 课下作业第十周(选做)

#20165201 课下作业第十周(选做) 相关知识点总结 补做代码运行结果截图 补做代码链接 相关知识点的总结 课上内容的补做,结果截图 教材第十五章的代码分析 补做教材第十五章的编程题目 提交补做的博客作业的连接 主动找老师进行作业答辩 原文地址:https://www.cnblogs.com/cbmwtsl/p/9000384.html

20175209 《MySort》和《IO-myhead》选做

20175209 <MySort>和<IO-myhead>选做 一.MySort 1.题目要求 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 2.设计思路 题目中要求为对第二列进行排序,个人设计时希望能够控制对所有列进行排序,因此需要在命令行中输入待排序的列号(这里存在一些小问题在后面问题中说明) 对于给定的字符数组无法直接进行排序,采用split方法将每一行分解后将带排序的列中

MySort(选做)的实现

MySort(选做)的实现 题目内容 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 代码框架(题目给出) import java.util.*; public class MySort { public static void main(String[] args) { String[] toSort = {"aaa:10:1:1&quo

课后选做题-MyOD

课后选做题-MyOD od命令的了解 功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符.od命令系统默认的显示方式是八进制,名称源于Octal Dump. 常见的文件为文本文件和二进制文件.od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值. 语法 od 参数 -a 此参数的效果和同时指定

20175325 实现mypwd(选做,加分)

20175325 实现mypwd(选做,加分) 一.题目内容: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 二.步骤: 功能:查看"当前工作目录"的完整路径 使用man命令查看pwd pwd的实现 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 man -k current directory man getcwd 实现与测试mypwd 三.测试代码: int get_nam

[SDOI2016]部分题选做

听说SDOI蛮简单的,但是SD蛮强的.. 之所以是选做,是因为自己某些知识水平还不到位,而且目前联赛在即,不好花时间去学sa啊之类的.. bzoj4517 数论题,我这种不会错排的数论白痴都能手推出来,这题应该谁都能写吧. #include<cstdio> #include<cstring> #include<algorithm> #define mo 1000000007 #define ll long long #define N 1000100 using nam