题目:https://vjudge.net/problem/HDU-5510

$2015ACM/ICPC$ 亚洲区沈阳站

题目大意:

输入$t$(表示样例个数)

如何每个样例一个 $n$,表示字符串的个数。

接下来 $n$个字符串,题目要求输出一个最大的i,使得对于标号为 $j (1<=j<i)$ 的字符串 $ss[j]$ 不是字符串 $ss[i]$ 的子串。

思路:

从最后一个字符串向前枚举,如果对于一个字符串 $ss[i]$,其前面的一个字符串 $ss[i-1]$ 不是 $ss[i]$ 的子串,那么就从 $i+1$ 开始向后寻找最大的不包含 $ss[i-1]$ 的字符串。

判断子串的过程可以用函数 $strstr(s_1,s_2)$:如果 $s_2$ 不是 $s_1$ 的子串,那么返回 $null$。

也可以用 $kmp$。

 #include <bits/stdc++.h>
using namespace std;
char ss[][];
int main()
{
int t,n,cas=;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(ss,,sizeof(ss));
for(int i=;i<=n;i++)
scanf("%s",ss[i]+);
int ans=-;
for(int i=n;i>;i--)
{
if(!strstr(ss[i]+,ss[i-]+))
{
ans=max(ans,i);
for(int j=i+;j<=n;j++)
{
if(!strstr(ss[j]+,ss[i-]+))
ans=max(ans,j);
}
}
}
printf("Case #%d: %d\n",++cas,ans);
}
return ;
}

最新文章

  1. 设计模式(七)适配器模式(Adapter Pattern)
  2. Win10系统菜单打不开问题的解决,难道是Win10的一个Bug ?
  3. Python基础10- 函数之内部函数与强制转换
  4. HDU 1565 最大点权独立集
  5. 2015GitWebRTC编译实录3
  6. 安装Wamp后 Apache无法启动的解决方法
  7. phpcmsv9更改fckeditor编者ueditor编辑
  8. C#编写Windows 服务
  9. Vue不能检测数组或对象变动问题的解决
  10. Spring Cloud 快速入门
  11. C#的排序Sort和OrderBy扩展方法
  12. CSS全局居中
  13. Mac终端配置,DIY你的Terminal (iTerm 2 + Oh My Zsh)
  14. 【Go命令教程】1. 标准命令详解
  15. Windows命令行参数的知识(一)
  16. 【THUSC2017】座位
  17. LRU算法 - LRU Cache
  18. JPG PNG GIF 的优缺点
  19. JAVA定时任务Timer
  20. 警告&quot;System.Configuration.ConfigurationSettings.AppSettings”已过时,解决办法

热门文章

  1. Python小白入门题一——文件增删改
  2. Java学习笔记----打印基本数据类型范围
  3. WTL使用双缓冲避免重绘闪烁
  4. 关于puremvc的几点思考
  5. 牛客练习赛52 B Galahad (树状数组)
  6. 新的起航从这里开始 Encantado!
  7. springboot结合Docker部署
  8. Go语言实现:【剑指offer】链表中倒数第k个结点
  9. 2020-02-20Linux学习日记,第二天
  10. 带你简单了解域名系统DNS