杭电-1238Substrings(爆搜)

『杭电1238』Substrings Problem Description You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings. Input The first line of the input fi 阅读详情

Substrings

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8626    Accepted Submission(s): 4001


Problem Description
You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings.
 

Input
The first line of the input file contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case contains a single integer n (1 <= n <= 100), the number of given strings, followed by n lines, each representing one string of minimum length 1 and maximum length 100. There is no extra white space before and after a string.
 

Output
There should be one line per test case containing the length of the largest string found.
 

Sample Input
2 3 ABCD BCDFF BRCD 2 rose orchid
 

Sample Output
2 2
 

猛地一看还以为是LCS,原来是个爆搜题!不会超时放心枚举!

找出最短的串,然后枚举这个串的所有子串和反串即可!




#include<cstdio>
#include<cstring>
#include<aLgorithm>
#define INF 0x3f3f3f3f
char map[110][110],s1[110],s2[110];
int main()
{
	int N,k,i,j,m,n,ma,f,MAX;
	scanf("%d",&N);
	while(N--)
	{
		scanf("%d",&n);
		ma=INF;
		for(i=0;i<n;i++)
		{
			scanf("%s",map[i]);
			int len=strlen(map[i]);
			if(len<ma)
			{
				ma=len;
				f=i;
			}
		}
		MAX=0;
		int flag=1;
		for(i=0;i<ma;i++)
		{
			for(j=i;j<ma;j++)
			{
				for(k=i;k<=j;k++)
				{
					s1[k-i]=map[f][k];//正子串
					s2[j-k]=map[f][k];//反子串
				}
				s1[j-i+1]=s2[j-i+1]='\0';
				
				int len3=strlen(s1);
				for(k=0;k<n;k++)
				{
					if(!strstr(map[k],s1)&&!strstr(map[k],s2))//子串都没出现过
					{
						flag=0;
						break;
					}
				}
				if(len3>MAX&&flag)
				MAX=len3;
				flag=1;
			}
		}
		printf("%d\n",MAX);
	}
	return 0;
}





逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数 本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。 阅读详情

相关推荐

Silvaco光电探测学习笔记(一)——有关响应和暗电流

习惯用md记笔记,索性发出来,一是为了在线同步,二是希望能帮到需要的人。

qq_41584406的博客 8012

substrings(子串)

题意:给定n个字符串,求每个字符串中都出现过的(正串反串都可以),长度最大的子串。链接: http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1000&ojid=0&cid=10646&hide=0思路: 找到长度最小的那个字符串,三重循环,第一重是限定子串开始的位置,第二重是限定子串的长度,第三重分别是复制两个子串和判定子串

cpfor 1815

博途AI助手演示,完成简单且重复的梯形图代码,并导入到博途

自写个博途AI助手,下面演示AI帮我生成完善多个模拟量输入转换的代码,

gsjkwg的博客 1525

杭电ACM——substrings(搜索)

本题应学会如何将字符串的子串全部罗列出来。要设置三重循坏(仅限数据小的情况) #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;string.h&amp;gt; int main() { int t,n; int i,j,k,l,flag; //i,j,k控制循坏,flag标识 int len,min,max,p=0; //找出所有字...

shamansi99的博客 418

自制电吉他效果器 DIY PCB(二)电路图分析

自制DIY电吉他效果器 PCB(二)电路图分析 要自制一款效果器,看懂电路图是必须的,即使你已经有了完整的设计电路图,在电路的绘制已久焊接的时候电路知识都会用到。 在效果器电路中,比较简单的是过载失真类效果器的电路。混响延迟等与声相有关的由于电路比较复杂本人也没有尝试过。其他的例如EQ、哇音等等效果器复杂程度依设计各不相同,在能做出过载失真类效果器后,可以自行尝试。 我这里主要为大家介绍失真效果器...

qq_41342525的博客 2万+

Linux命令行入门:从零掌握服务器运维与Shell脚本基础

在信息化时代,操作系统是数字世界的基石,而终端命令行则是高效驾驭服务器的核心技能。无论是软件部署、服务监控还是故障排查,掌握基于Shell的指令操作都能大幅提升工程效率。从最基础的文件目录管理、文本处理,到权限控制、进程监控与网络调试,命令行提供了一套强大且可自动化的操作范式。尤其对于运维工程师和开发者而言,理解管道、重定向以及脚本化任务,意味着将重复劳动转化为可复用的自动化流程。本文从环境准备讲起,系统梳理常用Linux命令的实际场景与输出验证,并延伸至Shell脚本编写与定时任务,帮助初学者快速建立从操

weixin_30522983的博客 255

Swift 中 Substrings 与 String

原作者 Greg Heo (@gregheo) | Twitter ,原文链接:Swift Substrings 为文本字符串添加特性或者语法糖在各种编程语言中都很普遍。就拿大家都很熟悉的 C 语言举例,C 字符串本质是一个字符数组(characters array),但是每次输入字符串的时候不用输入 ['h','e','l','l','o'] ,直接打 hello 就可以了,因为这个操作编译...

weixin_33884611的博客 276

基于转录逆转的药物重定向 GPS 模型

GPS是一个基于分子结构预测基因表达扰动的开源平台,由三个模块组成:RCL(在LINCS扰动数据上训练抗噪MLP)、GPS4Drugs(预测新化合物的基因表达谱并进行逆转评分)、MolSearch(基于MCTS的分子优化)。平台使用Morgan指纹和Gene Ontology注释作为特征输入,将基因表达扰动离散为三分类标签。训练数据来自LINCS Phase I的18,746个化合物和978个landmark基因,支持四细胞系独立训练,可用于药物重定向与化合物筛选。

听雨草堂 83

后缀自动机——Substrings

题解: 让我们找长度为x的子串出现的最大次数。我们先建立sam,然后把节点top序。我们知道endpos是一些出现相同次数和相同结束位置的集合。所以我们定义fif_ifi​为长度为i的子串出现的最大次数。我们因为知道长度fi>=fjf_i>=f_jfi​>=fj​,i<ji<ji<j的时候,所以我们只需要更新f[len[i]]f[len[i]]f[len[i]]就可以了。f[len[i]]=max(endpos[i],f[len[i]])f[len[i]]=max(end

行走天涯的豆沙包的博客 318

高通SDX35平台 modem启动异常分析

SDX35 MIFI项目在生产时出现modem反复重启问题。经排查发现是modem在初始化GNSS模块时访问了不存在的硬件地址导致崩溃,原因是产线使用的SDX35 000-AB型号芯片阉割了GNSS功能,而本地测试使用的AA型号支持该功能。解决方案是通过修改modem编译选项,采用高通新提供的genlmm2选项(保留IMS和SMS功能但去除GNSS支持),最终解决了启动异常问题并满足VZW认证需求。

四儿家的小祖宗的博客 273

Host是如何与EC通信的

EC中有三个寄存器,分别为状态寄存器EC_SC、命令寄存器EC_SC和数据寄存器EC_DATA。而状态寄存器和命令寄存器同属于一个寄存器,这几个寄存器遵循着ACPI EC规范。host可以根据ACPI协议规范来与EC进行通信。 以下是个寄存器的详细介绍。 EC状态寄存器(EC_SC(R)),该寄存器是一个只读寄存器,它反映了此时EC接口的状态。下图为该寄存器表。 EC状态寄存器表中各位的具体含义: OBF(Output Buffer is Full),该状态位置1...

qq_30135687的博客 3692

Substrings

Problem Description You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any ...

几许情愁的博客 947

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 676

杭电1238 Substrings

<br />源码(C++):<br />#include <iostream><br /> #include <string><br /> using namespace std;<br /> int main()<br /> {<br />     int n,m,s,j,k,index,len,curlen,t;<br />     cin>>n;<br />     string str,substr,substrr;<br />     while(n)<br />     {<b

rightbag的专栏 1200

计算机控制技术及应用

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU 1238 Substrings

Problem : 1238 ( Substrings )     Judge Status : AcceptedRunId : 3950754    Language : G++    Author : nastaCode Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta    简单的搜索题,杭电PPT的算法:“先将字符串按长度从短到长排序,枚举最短的字符串的子串,判断是否都是别的字符串的子串,求出最大长度即可。”写完提交

知易行难 710

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

杭电ACM1238——Substrings

题目的意思是,找到各个串的最长子串,输出长度。 我们找到最短的串,枚举这个串的所有子串,需要注意的是,这些子串的逆序也是可以的。 知道了这些,就可以写出代码了。 下面是AC的代码: #include #include using namespace std; char str[105][105]; int main() { char s1[105], s2[105]; int

XD 1110

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

hdoj 1238 Substrings

题目大意:求一组字符串的最长子串,子串包括逆串匹配 解题思路:选一个最短字符串,枚举其子串,跟其他字符串用kmp正匹配和逆匹配 注意没有子串匹配的情况。 #include #include #include #include using namespace std; const int maxn = 102; char str[maxn][maxn]; int slen[maxn

涛涛不解 804

HDOJ 1238 Substrings

Substrings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8078    Accepted Submission(s): 3688 Problem Description You are given a n

Chunzhen的博客 1002

杭电ACM1238(搜索题)

#include #include #include #include using namespace std; #define MAXN 100 vector strs; int n; bool find(string sub) { for(int i = 0; i < n; i ++) { if(string::npos == strs[ i ].find(sub))

adolphxy的专栏 606

杭电1238————简单枚举

Substrings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7186    Accepted Submission(s): 3242 Problem Description You are given a

SixDay 495

SPOJ:Substrings(后缀自动机)

You are given a string S which consists of 250000 lowercase latin letters at most. We define F(x) as the maximal number of times that some string with length x appears in S. For example for string 'ab...

junior19的博客 494
上一篇: 杭电-1159Common Subsequence(LCS)
下一篇: 杭电-1513Palindrome(LCS+滚动数组)
Eric_keke
博客等级 码龄12年 37粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值