hdu2328Corporate Identity

保姆级教程:用Arduino+MPU6050自制寻北仪(附MEMS陀螺精度测试报告) 本文提供了一份详细的Arduino与MPU6050自制寻北仪的保姆级教程,包括硬件选型、卡尔曼滤波算法优化、地磁场补偿及真北计算等关键技术。通过实测数据展示了MEMS陀螺仪在民用领域的高精度性能,帮助读者低成本实现1°以内的寻北精度。 阅读详情

题目链接: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;
}
android 蓝牙通讯demo android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。 立即下载

相关推荐

手把手教你在全新服务器内网安装OpenEuler 22.03 LTS SP4+ 安装 openGuass 5.0.0(LTS) 数据库

openEuler是面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的开源服务器Linux操作系统。

cgqyw的专栏 3736

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

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

COFACTOR 334

ALTERA Triple-Speed Ethernet IP核在UDP通信中的实战配置指南

本文详细介绍了在Intel FPGA(原ALTERA)平台上配置Triple-Speed Ethernet IP核以实现UDP通信的实战指南。内容涵盖从IP核选型、QSYS系统搭建、关键参数配置,到UDP数据包组装、NIOS C程序调试及上板验证的全流程,重点解析了如何利用该IP核快速构建稳定的千兆网通信基础,为FPGA网络应用开发提供清晰路径。

m3n5b7v8c9x的博客 512

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

ADP在线自适应动态规划之持续激励条件

在线自适应动态规划之持续激励条件 在在线自适应动态规划算法中,需要通过满足持续激励条件(Persistent Excitation Condition)保证critic网络权值的收敛性,一般的做法都是在算法初期在输入端引入探测噪声(Probing Noises)来保证数据的丰富性,但是由于在输入端引入噪声会给系统带来一些不好的影响,甚至可能破坏系统的稳定性。因此,出现了一些其他的方法来避免引入探测噪声,受阅读所限,我目前了解两种: Concurrent Learning(CL) Experience Re

qq_43435956的博客 6161

R语言生存分析

自己整理编写的R语言常用数据分析模型的模板,原文件为Rmd格式,直接复制粘贴过来,作为个人学习笔记保存和分享。部分参考薛毅的《统计建模与R软件》和《R语言实战》生存分析是研究生存时间的分布规律,以及生存时间和相关因素之间关系的一种统计分析方法。生存分析在医学科学研究中具有广泛而重要的应用价值,它对人群寿命的研究,各种慢性疾病的现场追踪研究,临床疗效试验和动物试验等研究中随访资料的处理骑着举足轻重的作

Tiaaaaa的博客 2万+

HDU 2328(Corporate Identity)

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

Joker & Liar的博客 195

linux中的sendmail发送邮件

linux下的sendmail发送邮件

无痕的博客 6421

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

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

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

rk3566-11.0新增device分区

1.增加块设备 2.修改根目录节点权限 3.开机启动自动挂载 增加块设备 1.修改parameter.txt文件,新增块设备大小及命名 device/rockchip/rk356x/rk3566_r/parameter.txt FIRMWARE_VER: 11.0 MACHINE_MODEL: rk3566_r MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE

weixin_51115260的博客 3383

NotebookLM平替实测:用Open Notebook+Ollama零成本搭建私有AI知识库

本文提供了一份详细的实战指南,教你如何利用Open Notebook与Ollama,在本地零成本搭建一个功能强大且完全私有的AI知识库。通过Docker容器化部署,实现数据绝对安全、模型自由选择与离线运行,是NotebookLM等云端工具的绝佳平替方案,尤其适合注重数据隐私的教育工作者、研究者及小团队。

weixin_29052717的博客 513

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

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

Deng's site \# 907

Ardupilot飞控姿态角与姿态角速度控制过程分析(超长篇)

目录 目录 摘要 1.代码控制过程分析 摘要 本节主要记录自己学习ardupilot飞控代码的姿态角速度的控制过程 1.代码控制过程分析 可以看出:AC_AttitudeControl *attitude_control; //指针对象 virtual void rate_controller_run() = 0;是AC_AttitudeContro...

陌城烟雨 1万+

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

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

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

HDU 2328 Corporate Identity

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

lj94093的专栏 681

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

余额充值