hdu 2328 Corporate Identity

点击打开链接hdu 2328

思路:kmp+暴力枚举子串

分析:
1 题意要求最长的公共子串,由于每一串的长度最长不超过200,所以可以选择暴力枚举最短的单词的子串来求出ans
2 利用kmp来匹配

代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

#define MAXN 4010
#define N 210

int n;
int next[MAXN];
char words[MAXN][N];

/*qsort*/
int cmp(const void *str1 , const void *str2){
   return strlen((char *)str1)-strlen((char *)str2);
}

/*求next*/
void getNext(char *str){
   int len = strlen(str);
   next[0] = next[1] = 0;

   for(int i = 1 ; i < len ; i++){
      int j = next[i];
      while(j && str[i] != str[j])
          j = next[j];
      next[i+1] = str[i] == str[j] ? j+1 : 0;
   }
}

/*匹配函数*/
bool find(char *text , char *str){
    int n = strlen(text);
    int m = strlen(str);

    int j = 0;
    for(int i = 0 ; i < n ; i++){
       while(j && text[i] != str[j])
           j = next[j];
       if(str[j] == text[i])
           j++;
       if(j == m)
           return true;
    }
    return false;
}

int main(){
   int max;
   char ans[MAXN];
   while(scanf("%d%*c" , &n) && n){
      for(int i = 0 ; i < n ; i++)
         scanf("%s" , words[i]);

      qsort(words , n , sizeof(words[0]) , cmp);

      int pos;
      char tmp[N];
      int len = strlen(words[0]);
      max = 0;

      for(int i = 0 ; i < len ; i++){
         memset(tmp , '\0' , sizeof(tmp));
         pos = 0;
         for(int j = i ; j < len ; j++){
            tmp[pos++] = words[0][j];
            getNext(tmp);

            int vis = 1;
            for(int k = 1 ; k < n ; k++){
               if(!find(words[k] , tmp)){
                  vis = 0;
                  break;
               }
            }
            if(vis && max < pos){
               max = pos;
               memcpy(ans , tmp , sizeof(tmp));
            }
            else if(vis && max == pos && strcmp(ans , tmp) > 0)
               memcpy(ans , tmp , sizeof(tmp));
         }
      }

      if(max)
        printf("%s\n" , ans);
      else
        printf("IDENTITY LOST\n");
   }
   return 0;
}
时间: 2024-12-29 19:44:52

hdu 2328 Corporate Identity的相关文章

企业身份识别系统 corporate Identity System

cis的具体组成部分 mi:理念识别 bi:行为识别 vi:视觉识别 什么是cis ? cis是corporate identity system的缩写,意思是企业形象识别系统.60年代,美国人首先提出了企业的ci设计这一概念.据说是美国ibm公司是这方面开先河者. cis的主要含义是:将企业文化与经营理念,统一设计,利用整体表达体系(尤其是视觉表达系统),传达给企业内部与公众,使其对企业产生一致的认同感,以形成良好的企业印象,最终促进企业产品和服务的销售. cis的意义 对内,企业可通过ci设

KMP专题【完结】

第一题 hdu 1711 Number Sequence 点击打开hdu 1711 思路: 1 kmp是用来匹配字符串,只能够匹配单一的字符串 2 kmp的算法的过程:   1:假设文本串的长度为n,模式串的长度为m:   2:先例用O(m)的时间去预处理next数组,next数组的意思指的是当前的字符串匹配失败后要转到的下一个状态:   3:利用o(n)的时间去完成匹配: 3 时间复杂度为o(n+m)即o(n): 点击查看代码 第二题 hdu 1686 oulipo 点击打开hdu 1686

如何设计一个成功的网站

设计     随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落.作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车:企业利用网站宣传自己的形象,挖掘无限商机:个人利用网站展示个性风采,创建彼此沟通的桥梁.越来越多的人希望拥有网站,开辟网络世界里的一片天地.如何设计一个出色的网站呢?关于这个问题,人们讨论的很多,可以讨论的内容也很多,加之网络技术的飞速发展,很难提出一个绝对权威和正确的设计思路,笔者不才,根据自己的设计体 会,总结

网站设计的思考-定位你的网站CI形象

设计 所谓CI,是借用的广告术语.(CI是英文corporate identity的缩写),意思是通过视觉来统一企业的形象.现实生活中的CI策划比比皆是,杰出的例子如:可口可乐公 司,全球统一的标志,色彩和产品包装,给我们的印象极为深刻.更多的例子如SONY,三菱,麦当劳等等. 一个杰出的网站,和实体公司一样,也需要整体的形象包装和设计.准确的,有创意的CI 设计,对网站的宣传推广有事半功倍的效果.在您的网站主题和名称定下来之后,需要思考的就是网站的CI形象. 有网友要问了:我不是学广告专业的,

定位网站的主题和名称

网站的主题也就是网站的题材,网站设计开始首先遇到的问题.网站题材千奇百怪,琳琅满目,只要想的到,就可以把它制作出来. 下面是美国<个人电脑>杂志(PC Magazine)评出的99年度排名前100位的全美知名网站的十类题材:第1类:网上求职:第2类:网上聊天/即时信息/ ICQ:第3类:网上社区/讨论/邮件列表:第4类:计算机技术:第5类:网页/网站开发:第6类:娱乐网站:第7类:旅行:第8类:参考/资讯:第9类:家庭/教育:10类:生活/时尚:每个大类都可以继续细分,比如娱乐类再分为体育/电

一个成功的网站设计

设计 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落.作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车:企业利用网站宣传自己的形象,挖掘无限商机:个人利用网站展示个性风采,创建彼此沟通的桥梁.越来越多的人希望拥有网站,开辟网络世界里的一片天地.如何设计一个出色的网站呢?关于这个问题,人们讨论的很多,可以讨论的内容也很多,加之网络技术的飞速发展,很难提出一个绝对权威和正确的设计思路,任何网站都基于以下设计思路:   一.定位网

谈谈什么是成功的网站设计

设计 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落.作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁.越来越多的人希望拥有网站,开辟网络世界里的一片天地.如何设计一个出色的网站呢?关于这个问题,人们讨论的很多,可以讨论的内容也很多,加之网络技术的飞速发展,很难提出一个绝对权威和正确的设计思路,任何网站都基于以下设计思路: 一.定位网站的

Dreamweaver MX 2004视频宝典教程(109)

dreamweaver|教程 第 109 集:定位网站的CI形象 课程目标:学习CI的作用及定位网站的CI 课程要点:CI即corporate identity,有创意的CI设计,对网站的宣传推广有事半功倍的效果. [全屏观看] | [下载视频] 本教程尺寸为 800 * 600 建议全屏在线观看或下载观看,以达到最佳观看效果

正规动画操作的一些解释

播放形式分类: 剧场公开版 在电影院中放映的作品,通常分两种形成方式,一是传统二维直接用胶片拍摄,一种是电脑数码输出胶片. OVA版 Original Video Animation (也叫 OAV),直接发行录影带版本的作品,没有先在戏院或电视上放映.就像DVD珍藏版一样的东东. 高清版 新媒体中比较重要的组成部分,象素比例是普通TV的三倍. TV版 在电视频道上播映的作品,输出方式有两种数字与模拟信号. 剧组形式分类: 出品 投资方,拿银子的. 制片人 投资方代表,类似出品人. 监制 对影片