1051 接龙游戏

1051 接龙游戏

时间限制: 1 s

空间限制: 128000 KB

题目等级 : 钻石 Diamond

题目描述 Description

给出了N个单词,已经按长度排好了序。如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙)。

你的任务是:对于输入的单词,找出最长的龙。

输入描述 Input Description

第一行为N(1<=N<=105)。以下N行每行一个单词(由小写组成),已经按长度排序。(每个单词长度<50)

输出描述 Output Description

仅一个数,为最长的龙的长度。

样例输入 Sample Input

5

i

a

int

able

inter

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

1<=N<=105

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<stack>
 4 #include<cstring>
 5 #include<algorithm>
 6 using namespace std;
 7 string a[1000001];
 8 int tot=1;
 9 stack<int>s;
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14     for(int i=1;i<=n;i++)
15     {
16         //scanf("%s",a[i]);
17         cin>>a[i];
18     }
19     sort(a+1,a+n+1);
20     s.push(1);
21     for(int i=2;i<=n;i++)
22     {
23         while(!s.empty())
24         {
25             int t=s.top();
26             int flag=0;
27             if(a[t].size()<a[i].size())
28             {
29                 if(a[i].find(a[t])==0)
30                 {
31                     break;
32                 }
33                 else
34                 {
35                     flag=1;
36                 }
37             }
38             else flag=1;
39             if(flag==0)
40             break;
41             if(flag==1)
42             {
43                 s.pop();
44             }
45         }
46         s.push(i);
47         if(s.size()>tot)
48         tot=s.size();
49     }
50     cout<<tot;
51     return 0;
52 }
时间: 2024-08-08 00:48:50

1051 接龙游戏的相关文章

codevs 1051 接龙游戏(栈模拟)

传送门 Description 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. Input 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) Output 仅一个数,为最长的龙的长度. Sample Input 5 i a int able inter Sample Output 3 思路   某单词i是某单词j

[codevs 1051]接龙游戏(栈)

题目:http://codevs.cn/problem/1051/ 分析: 当然单词查找树是可以的,但这题有更为简便的方法.可以先按字典序排序,然后弄一个栈,如果当前字串可以接到栈顶元素的后面,那么当前字串入栈,更新ans,否则栈顶元素弹出,知道当前字串可以接到新栈顶元素后面.

AC日记——接龙游戏 codevs 1051

1051 接龙游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. 输入描述 Input Description 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) 输出描述 Output De

CODEVS-1051 接龙游戏

题目描述 Description 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. 输入描述 Input Description 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) 输出描述 Output Description 仅一个数,为最长的龙的长度. 样例输入 Sample Input 5 i a int a

拇指接龙游戏升级记录03(升级MainScene.cpp)

MainScene是拇指接龙游戏的主游戏场景文件,拥有近5000行代码. 说实在的,实现自cocos2d-x 2.x版本向当下最新的3.8.1版本的升级过程,其中涉及的技术不是一下能够说明的.有些是形式上的简单修改,更多的则是性能上的提升相应的修改. 简单总结一下主场景文件MainScene的升级工作.主要集中在如下几个方面: 1.扑克拖动相关事件的升级修改: 这一点在网络上已经有不少细致的资料,在此不赘述,请参考后面的引文. 如今的手指移动事件操作起来要比2.x时期简化多了. 2. CCArr

拇指接龙游戏升级记录02(Cocos2d-x 3.8.1集成ShareSDK遇到的问题)

本文记录下在我的拇指接龙游戏升级过程中集成ShareSDK遇到的问题及解决方案. 第一,URL:http://wiki.mob.com/cocos2d-x-3-x快速集成指南/处说明过程粗略,尽管其意思是让开发人员参考相应URL下提供的DEMO. 第二,按照DEMO中提供的思路,以前在COCOS2D-X 2.X集成ShareSDK时十分顺利,但是现在在3.x项目中集成ShareSDK居然出现这么多的麻烦,实在是始料未及. (注意:我使用官方提供的cocos命令行工具生成工程框架,其中文件夹架构没

拇指接龙游戏从WIN32向Android移植过程问题记录(2)

本文中,在前文(1)基础上,将尽可能详细记录拇指接龙游戏从WIN32向Android移植过程后期--UI运行级调试出现的问题及可能的解决办法. 问题1 正未运行,问题就来了.忽然发现,工程左上角挂着一个大大的感叹号!请看截图: 打开工程属性对话框,观察到如下现象: 我把鼠标停留在右边的横线处,后面出现一个关键单词missing.也就是说,我们的游戏工程依赖的cocos2d-x库包jar文件丢失了!? 再打开另一处观察,发现如下: 其实,有一个重要细节在上一篇中我没有交待.此前,我使用中家的版本在

[CODEVS1051]接龙游戏

题目描述 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. 输入描述 Input Description 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) 输出描述 Output Description 仅一个数,为最长的龙的长度. 数据范围及提示 Data Size & Hint 1<=N<=

拇指接龙游戏从WIN32向Android移植过程问题记录

本文将较细致地记录下最近开发课程中的示例游戏-拇指接龙游戏在从WIN32向Android移植过程中遇到的若干问题及相应解决办法. 目前极不完整,待进一步整理. 问题1 连接真机测试运行时,在SplashScreen运行时便出现如下错误提示(log.txt): 09-16 13:28:16.525: I/GLThread(25784): sending render notification tid=1009-16 13:28:18.530: D/cocos2d-x debug info(2578