hdu2328Corporate Identity

SCRFD算法解读及环境安装实践 SCRFD检测算法及环境安装 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2328
找一个字典序最小的公共最长子串,枚举子串暴力就能过,这里有个小优化就是选取最短的字符串枚举其子串。

#include <stdio.h>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
char p[205][205];
char str1[205];
int len[205];
char ast[205];
int nxt[205];
void gnx(char str[],int len){
    memset(nxt,0,sizeof(nxt));
    int i=0,j=-1;
    nxt[0]=-1;
    while(i<len){
        if(j==-1||str[i]==str[j]){
            if(str[++i]==str[++j])nxt[i]=nxt[j];
            else nxt[i]=j;
        }
        else j=nxt[j];
    }
}
int kmp(char s[],int ls,char p[],int lp){
    int i=0,j=0;
    while(i<ls&&j<lp){
        if(j==-1||s[i]==p[j]){++i;++j;}
        else j=nxt[j];
    }
    if(j==lp)return i-lp;
    else return -1;
}
int sstrcmp(char a[],char b[],int len){
    int i=0;
    while(i<len){
        if(a[i]<b[i])return -1;
        else if(a[i]>b[i])return 1;
        else i++;
    }
    return 0;
}
int main(void)
{
    int n;

    while (~scanf("%d", &n) && n)
    {
        int ans = 0;
        int st = 0, mn = 1000;

        for (int i = 1; i <= n; i++)
        {
            scanf("%s", p[i]);
            len[i] = strlen(p[i]);

            if (len[i] < mn)
            {
                mn = len[i];
                st = i;
            }
        }
        for(int i=0;i<mn;i++){
            memcpy(str1,p[st]+i,mn-i);
            str1[mn-i]=0;
            gnx(str1,mn-i);
            for(int j=max(ans,1);j<=mn-i;j++){
                int flag=1;
                for(int k=1;k<=n;k++){
                    if(k==st)continue;
                    if(kmp(p[k],len[k],str1,j)==-1){flag=0;break;}
                }
                if(flag){
                    if(j>ans||((j==ans)&&sstrcmp(ast,str1,j)>0)){ans=j;memcpy(ast,str1,j);ast[j]=0;}
                }
            }
        }
        if(ans==0)puts("IDENTITY LOST");
        else printf("%s\n",ast);
    }

    return 0;
}
RTX 50系显卡(5080/5090D)CUDA 12.8环境下的vLLM部署避坑与实战指南 本文为RTX 5080/5090D显卡用户提供了在CUDA 12.8环境下部署vLLM的完整实战指南。文章详细介绍了从驱动安装、CUDA 12.8环境配置、PyTorch Nightly版本精准匹配,到vLLM源码编译及常见报错排查的全过程,帮助开发者高效利用新一代硬件进行大模型推理。 阅读详情

相关推荐

ubuntu恢复分区表——testdisk

testdisk恢复ubuntu分区表testdisk介绍安装testdisk使用testdisk恢复分区表 testdisk介绍 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,也经常被用来恢复被误删的文件。 安装testdisk 如果系统分区表被删除,需要使用ubuntu的启动盘,选择try ubnutu模式进入试用系统。 1、可以直接在终端安装testdisk: sudo apt-get install testdisk 通过命令直接打开testdisk: t

ZNestor的博客 6459

【代码超详解】HDU 2328 Corporate Identity(KMP)

一、题目描述 二、算法分析说明与代码编写指导 KMP 从短到长枚举任意一个字符串(这里取第一个)的全部子串,用这个子串去匹配其它字符串。全部匹配成功且字典序更小就记录该子串作为答案。 优化:由于 next 数组是基于模式串 p 生成的。而每一个枚举的子串 p 会用于匹配其它 (n - 1) 个字符串。这时候只需要生成 next 数组 1 次。 三、AC 代码 #include<cstdio...

COFACTOR 334

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6044

HDU - 2328 Corporate Identity 暴力枚举+kmp

Corporate Identity 题意:在多个母串中找到字典序最小的最长公共字串 题解:暴力枚举s[0]的所有字串,然后利用kmp去匹配其他串,找到最长且字典序最小的即可。 由于习惯把next数组开大了,导致超时好多次。。。 #include<iostream> #include<algorithm> #include<cstring> #include<set> using namespace std; const int N=1e6+10; i

睡醒继续做梦的博客 231

Xiaojie雷达之路---毫米波雷达基础知识---角度估计

本篇文章主要介绍毫米波雷达的基础知识中的角度估计,对于本篇文章主要回答5个问题 1.在雷达的前方,如何估计前方一个物体的角度 2.角度测量的准确性 3.如何测量多个物体的角度 4.雷达可测的角度的视场最大值为多少 5.角度分辨率取决于什么因素 文章目录估计雷达前面一个物体的角度角度测量的准确性雷达的最大角视场测量雷达前方多个距离和速度相同的物体角度分辨率角度估计的流程 估计雷达前面一个物体的角度 估计一个物体的角度,最少需要两根接收天线 发射天线发送一个chirp,经过物体发射后信号,信号分别被第一根天

XiaoJie的博客 1万+

基于CH32X035的USB双K型热电偶温度计:硬件设计、冷端补偿与信号放大详解

本文详细介绍了基于CH32X035单片机设计USB双K型热电偶温度计的完整方案。重点解析了硬件设计中的核心挑战:如何利用精密运放GS8552-SR进行信号放大,以及采用NTC热敏电阻和查表法实现精确的冷端补偿。项目通过USB供电通信,实现了双路高精度温度测量与显示,为电子爱好者和工程师提供了实用的参考设计。

weixin_42153793的博客 160

HDU 2328(Corporate Identity)

题意:给定 n 个字符串,求最大子串,使得它是 n 个字符串的子串。(若有多种答案,输出字典序最小的) 分析:每个字符串长度不超过200,则可以暴力枚举子串 然后 KMP。 代码: #include<cstdio> #include<cstring> #include<iostream> using namespace std; const...

Joker & Liar的博客 195

openclaw通俗入门系列6——记忆系统

记忆 = 智能体的笔记本,分长期(MEMORY.md)和每日(memory/日期.md)。只有写到文件里的才能记住!支持语义搜索(理解意思)+ 关键词搜索,还能自动在压缩前保存重要内容。

m0_60605453的博客 403

|hdu 2328|后缀数组|二分|Corporate Identity

hdu 2328给出n个字符串,输出他们的最长公共子串,无解输出”IDENTITY LOST”用不同的符号连接每个字符串,然后二分公共子串的长度,在heightheight数组中看有没有连续nn个heightheight大于公共子串的长度,如果有,那么更新答案。 (此题暴力比SA快,而且poj上用SA一直TLE,Hdu上1840ms就过了)#include<cstdio> #include<cst

博客停更,请到"再见,优快云"文章中找新博客地址 813

【专栏必读】王道考研408数据结构+算法设计与分析万字笔记使用说明及章节导航

各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍 文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图 首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口 (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序) (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转 一:有.

快乐江湖的博客 5万+

Vivado报错-4 [Routed 35-3424] SLL Assignment failed ILP VU19P

Vivado报错[Routed 35-3424] SLL Assignment failed ILP VU19P

weixin_39896700的博客 1408

HDU 2328 Corporate Identity(Trie·最长公共子串)

题意  输出n个串的字典序最小的最长公共子串 可以枚举第一个串的所有子串  然后对每个串kmp匹配  比较复杂  而且慢  发现和HDU2846(求模式串在n个串中出现的次数)有类似之处  都可以用Trie来处理  一个串的子串肯定是其某个后缀的前缀   我们把第一个串的所有后缀都插入到Trie中  最长公共子串肯定是在这个Trie里面的  因为它肯定是第一个串的子串  在插入后面的串的后缀时

Deng's site \# 907

2023最新多文明策略手游《万国觉醒内购版》最新整理Linux商业手工服务端+安卓+详细搭建教程

2023最新多文明策略手游《万国觉醒内购版》最新整理Linux商业手工服务端+安卓+详细搭建教程。源码内置详细搭建教程,感兴趣可自行下载。

百创科技 1713

hdu 2328 Corporate Identity(KMP)

题目链接:hdu 2328 Corporate Identity 题目大意:给出若干个串,求最长公共子串。 解题思路:和poj 3080一样的做法。 #include #include #include using namespace std; const int N = 4005; const int M = 205; int n, m, len, j

不慌不忙、不急不躁 1605

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

HDU 2328 Corporate Identity

一直WA,后来陆陆续续发现一点小错误,说多了都是泪 这里最后查找有多少个串是满足条件的时候,用map先将r里每一个字符的位置(而不是其值,值会有很多重复的)映射为其所在的串,这样就不用自己去开个hash数组了 最后查找的时候用个set判断有多少个串满足条件 #include #include #include #include #include using namespace std; #

lj94093的专栏 681

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

HDU - 2328 Corporate Identity(暴力截取)

HDU - 2328 Corporate Identity #include<iostream> using namespace std; const int N = 4010; string s[N]; int n; bool check(string str) { for(int i=2;i<=n;i++) if(s[i].find(str)==string::npos) return false; return true; } int main() { while(

00后的博客 349

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

hdu 2328 Corporate Identity

输出最长公共子串 Corporate Identity Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 795    Accepted Submission(s): 318 Problem Descri

便纵有千种风情 623

HDU 2328 Corporate Identity 后缀数组

求多个字符串的最长公共子串,若有多个输出字典序最小。 先复习一下,(i,j)表示排名i、j的串的最长公共前缀。(i,j) = min[(i,i+1),(i+1,i+2),......,(j-1,j)]。 两个字符串的最长公共前缀求法: 将两个字符串合起来,中间加个特殊符号,然后对整个字符串求后缀数组。 扫描height数组,如果排名i和i+1的串分别属于不同的原始串,则用heigh

936

hdu 2328 Corporate Identity

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2328 题目大意:求多串的最长公共子串,并输出字典序最小。 题目思路:后缀数组,二分答案。 #include #include #include #include #include #include #include #include #include #include #include usin

Wings_of_Liberty的专栏 793

HDU-2328 Corporate Identity

题目链接:https://vjudge.net/problem/HDU-2328 还是在多个字符串中寻找最长公共子串 从第一个字符串里找子串和其他字符串匹配,有多个最长的输出字典序最小的 #include #include #include #include #include using namespace std; const int N=200+10; //文本串长度 const in

wl16wzl的博客 339

Corporate Identity HDU - 2328 (KMP)

Beside other services, ACM helps companies to clearly state their “corporate identity”, which includes company logo but also other signs, like trademarks. One of such companies is Internet Building M...

Top_Spirit的博客 343

【hdu 2328】Corporate Identity

【链接】h在这里写链接 【题意】 找一个字典序最小的公共最长子串; 【题解】 后缀数组。 把所有的串用不同的分隔符分开。(大于'z'的分隔符); 然后求出那几个固定的数组。 二分一下那个子串的长度. 看看是不是在N个串里面都有这个串即可。 可以用一个下标,来记录某个位置开始的后缀是第几个串里面的(即输入的N个串里面的哪一个串). 子串长度越大显然越不可能存在。 (因...

AWCXV 59

【kmp】Corporate Identity HDU - 2328

Think: 1知识点:kmp算法+暴力枚举 2题意:输入一组字符串,寻找最长公共子串,长度相同时选择字典序最小的 3解题思路: (1):找到字符串组中长度最短的字符串,然后根据左右区间枚举查询 (2):找到字符串组中长度最短的字符串,然后根据长度从大至小枚举,若在当前长度梯度已经找到串,则结束枚举(因为从大至小枚举的长度梯度级,因此下面枚举的长度梯度级要小于当前已经枚举完成的长度梯度级)

BlessingXRY的博客 454

HDU - 2328 Corporate Identity

Corporate Identity Corporate Identity Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4935 Accepted Submission(s): 1824 Problem Description Beside other services, ACM helps companies to clearly st

Steve_Liu12399的博客 243

HDU 2328 Corporate Identity kmp暴力

一、 内容 Beside other services, ACM helps companies to clearly state their “corporate identity”, which includes company logo but also other signs, like trademarks. One of such companies is Internet Buil...

Tizzi的博客 721

HDU2328(Corporate Identity)

Corporate Identity Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4328 Accepted Submission(s): 1598 Problem Description Beside other servic...

Shaosen的博客 295
上一篇: hdu1238Substrings
下一篇: poj1236Network of Schools
IDrandom
博客等级 码龄12年 31粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值