首页 > 其他分享 >303 [UVA 12467] Secret word

303 [UVA 12467] Secret word

时间:2024-12-23 12:09:26浏览次数:3  
标签:12467 word int 303 Secret 字符串 UVA

// 303 [UVA 12467] Secret word.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
http://oj.daimayuan.top/course/22/problem/910

给你一个字符串 s,你需要找出 s 中最长的 secret word,
一个字符串 p 是 secret word 需要满足:

p 是 s的子串(p 可以与 s 相等);将 p 翻转后是 s 的前缀。
输入一行字符串 s,输出一行字符串为你求得的 p。

输入格式
一行一个字符串 s。

输出格式
输出一行一个字符串表示答案。

样例输入
listentothesilence
样例输出
sil
数据规模
对于所有数据,保证 1≤|s|≤105
,字符串均由小写字母构成。
*/


#include <iostream>
#include <cstring>

using namespace std;

const int N = 2 * 100010;
char s[N];
int ne[N];

int main()
{
	cin >>s + 1;
	int n = strlen(s + 1);
	s[n + 1] = '#';
	for (int i = 0; i < n; i++) {
		s[n + 2+i] = s[i + 1];
	}
	
	int l = n + 2; int r = n + 1 + n;
	while (l < r) {
		swap(s[l], s[r]);
		l++; r--;
	}
	n = strlen(s + 1);
	for (int i = 2, j = 0; i <= n; i++) {
		while (j && s[i] != s[j + 1]) j = ne[j];
		if (s[i] == s[j + 1]) j++;
		ne[i] = j;
	}
	
	int idx = -1; int len = 0;
	for (int i = n / 2; i <= n; i++) {
		if (ne[i] > len) {
			len = ne[i]; idx = i;
		}
	}

	for (int i = 0; i < len; i++) {
		cout << s[idx - i];
	}
	cout << endl;


	return 0;
}


标签:12467,word,int,303,Secret,字符串,UVA
From: https://www.cnblogs.com/itdef/p/18623683

相关文章

  • 1. K11504 天平[Not so Mobile,UVa839]
    题目描述输入一个树状天平,根据力矩相等原则判断是否平衡。如图所示,所谓力矩相等就是WlDl=WrDr,其中Wl和Wr分别为左右两边砝码的重量,D为距离。输入格式输入的第一行,是一个整数n,表示测试数据的组数。紧接着是一个空行。每组测试数据之间也有一个空行。每组测试数据,包含多......
  • 学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第十三周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第十三周作业)这个作业的目标<写上具体方面>加入云班课,参考本周学习资源;自学教材《C语言程序设计》第12章并完......
  • windows 驱动实例分析系列: pl2303芯片开发实战之一
    驱动开发有大半情况是需要和硬件芯片交互的,而国内,最多的情况就是拿到国外的芯片,然后进行仿制,故能根据芯片设计出解决方案这种技术是许多高级工程师的基本操作。PL2303是一个被广泛使用的USB转RS232串口芯片。其中一些型号早已停产,但还在市场上流通,被使用在一些产品上。在......
  • 「UVA1223」 Editor
    题意给一个字符串,求最长的出现了两次以上的子串长度。分析二分长度,枚举起点后记录哈希值出现次数即可。单次复杂度\(O(n\logn)\)。Code#include<bits/stdc++.h>typedeflonglongll;typedefunsignedlonglongull;usingnamespacestd;//staticcharbuf[100],*p1......
  • 「UVA11107」 Life Forms
    题意给\(n\)个字符串,求最长的在超过\(\lfloor\frac{n}{2}\rfloor\)个串里出现的子串,若有多个按字典序排序后输出;若不存在输出?。分析不理解这么水的题为什么要用后缀数组。预处理每个串的Hash值,二分子串长度,变成判定存不存在的问题。枚举每个串的子串起始位置,用unord......
  • 你的语言模型实际是一个奖励模型!Direct Preference Optimization:Your Language Model
    直接偏好优化:你的语言模型实际上是一个奖励模型......
  • k8s secret 创建与使用
    secret(加密存放的配置文件)描述:secret存放敏感数据比如:私钥与证书docker认证:用于在私有仓库拖镜像时使用的账号密码查看secret几种类型appdefault-token-mknntkubernetes.io/service-account-token320dapp......
  • 学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第十二周作业)这个作业的目标<写上具体方面>加入云班课,参考本周学习资源自学教材《C语言程序设计》第11章......
  • 学生大战期望题目¿h,艰难取胜。(UVA10529)
    /ll某事件\(A\)第一次发生的期望次数\(E(A)=\frac{1}{P(A)}\)。\(\color{Red}({1})\)所以设\(dp_i\)为连续放好\(i\)个的期望。显然有\(dp_0=0\)。由\(\color{Red}({1})\)得到有\(dp_1=\dfrac{1}{1-p_l-p_r}\)。所以同理对于一个骨牌不倒的期望次数为\(\dfra......
  • 学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第十一周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十一周作业这个作业的目标计算机科学概论(第七版)第15,16章并完成云班课测试,《C语言程序设计》第10章并完成云班课测试作业正文...本博客链......