hdu2328Corporate Identity

数学文化赏析MOOC笔记【2023】 深圳大学UOOC课程《数学文化赏析》课程笔记 阅读详情

题目链接: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;
}
Vue+Echarts监控大屏实例四:智慧农业监控模板实例 本实例通过Vue-Echarts实现了智慧农业监控模板实例界面,学习并使用了vue-echarts的使用,接入高德地图并展示,添加了全屏切换、加载动画小鼓、站点切换及退出等相关功能,提供源码下载。 阅读详情

相关推荐

HIL(硬件在环)技术汇总梳理

HIL(Hardware-in-the-Loop)测试领域的知名公司有dSPACE、NI、Vector和speedgoat等,本文是针对这几家HIL技术的对比分析。

Mr.Cssust的博客 3686

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

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

COFACTOR 334

从零复刻平衡小车(基于STM32F1)

平衡小车(基于STM32F1)

Legendyyy的博客 5040

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

Simplorer-Maxwell联合仿真速度太慢?我用这3个技巧把仿真时间砍半(附SVPWM周期与步长设置避坑)

本文详细介绍了Simplorer-Maxwell联合仿真性能优化的3个关键技巧,包括仿真步长与周期的科学配置、基于任务调度的加速技术以及模型简化与精度平衡。特别针对SVPWM参数设置提供了避坑指南,帮助工程师在不牺牲精度的情况下将仿真时间缩短50%以上,适用于电机驱动系统开发等场景。

weixin_29189381的博客 466

携程登录风控逆向踩坑实录:从滑块到点选验证码,我是如何一步步拿到phantom-token的

本文详细解析了携程登录风控系统的逆向过程,从滑块验证码到点选验证码的破解,再到设备指纹生成和加密协议逆向,最终成功获取phantom-token。文章提供了关键代码示例和实战技巧,帮助开发者理解并绕过复杂的风控机制。

weixin_28049429的博客 970

HDU 2328(Corporate Identity)

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

Joker & Liar的博客 195

从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)

本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。

weixin_28715953的博客 324

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

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

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

基于DPCNN实现电商情感分析任务

下载链接项目中使用的模型是DPCNN,在模型中我们定义了三个组件,分别是embedding层,卷积层和全连接层。Embedding层:将每个词生成对应的嵌入向量,就是利用一个连续型向量来表示每个词卷积层:提取语句中的语义信息Linear层:将结果映射成2大小用于二分类,即正反面的概率。

优快云 精品推荐 1629

华为OD新系统机试真题 4.26 -最大化游戏试玩资格分发

华为OD机试新系统真题【最大化游戏试玩资格分发】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试 4月26号真题【最大化游戏试玩资格分发】。

qq_45776114的博客 825

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

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

Deng's site \# 907

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HDU 2328 Corporate Identity

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

lj94093的专栏 681

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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、付费专栏及课程。

余额充值