CodeForces - 7D Palindrome Degree ( 哈希 )

新手必看|HDevelop核心算子快速上手,为C#移植打基础 在上一篇文章中,我们完成了C#+HALCON的开发环境搭建。但在实际工业开发中,绝不会直接在C#中编写视觉算法HDevelop可视化调试算法 → 验证效果 → 导出C#代码 → 集成到上位机。HDevelop是HALCON专属的算法调试工具,支持实时预览图像、参数动态调节、零编译运行,是新手入门和工业算法调试的核心工具。本文聚焦工业场景高频使用的核心算子,从基础操作到实战案例,手把手教你使用HDevelop;同时重点讲解算法导出C#的规范,让你调试完成的算法,能无缝移植到WinForm上位机中。 阅读详情
题目链接:点击进入
题目

在这里插入图片描述
在这里插入图片描述

题意

字符串是 k 回文的,当且仅当它是回文的,同时它的长为 ( l / 2 ) ( 下取整 ) 的前缀跟后缀都是 k - 1 回文的。( 空字符串是 0 回文的 )
字符串的回文等级是最大的 k ,s 是 k 回文。
求 s 所有前缀的回文等级和

思路

遍历每个前缀,判断哈希判断是否是回文,若是回文,回文等级 = 长为 ( l / 2 ) ( 下取整 ) 的前缀回文等级 + 1 ,并将其计入答案。
( 若是回文串,对于回文等级的计算,可以维护一个前缀的回文等级的数组,因为当前的回文等级总是由一半长度的前缀的回文等级更新而来 )

代码
// Problem: Palindrome Degree
// Contest: Virtual Judge - CodeForces
// URL: https://vjudge.net/problem/CodeForces-7D
// Memory Limit: 262 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define base 233
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
// #define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=5e6+10;
const int mod=1e9+7;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

char s[maxn];
ll f[maxn],ans;
ll p[maxn],h1[maxn],h2[maxn];

bool check(int a,int b,int c,int l)
{
	ll l1=h1[a];
	ll l2=((h2[b]-h2[c]*p[l])%mod+mod)%mod;
	return l1==l2;
}

int main() 
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);cout.tie(0);
	scanf("%s",s+1);
	int len=strlen(s+1);
	p[0]=1;
	for(int i=1;i<=len;i++) p[i]=p[i-1]*base%mod;
	for(int i=1;i<=len;i++) h1[i]=(h1[i-1]*base+s[i])%mod;
	for(int i=len;i>=1;i--) h2[i]=(h2[i+1]*base+s[i])%mod;
	ans=f[1]=1;
	for(int i=2;i<=len;i++)
	{
		int l=i/2;
		if(i&1)
		{
			if(check(l,l+2,i+1,l))
				f[i]=f[i/2]+1,ans+=f[i];
		}
		else
		{
			if(check(l,l+1,i+1,l))
				f[i]=f[i/2]+1,ans+=f[i];
		}
	}
	printf("%lld",ans);
    return 0;
} 
Python二级考试题目及答案解析(含刷题软件) 答案:A 解析:print()函数可以在屏幕上输出指定的字符串或变量,input()函数用于从键盘获取用户输入,int()函数可以将指定的字符串或浮点数转换为整数,float()函数可以将指定的字符串或整数转换为浮点数。答案:A 解析:int()函数可以将字符串转换为整数,float()函数可以将字符串转换为浮点数,str()函数可以将任意类型的变量转换为字符串,bool()函数可以将任意类型的变量转换为布尔值。 阅读详情

相关推荐

AI 生成 CAN 通信测试用例实战

本文分享了AI辅助汽车电子测试用例编写的实战经验。通过某车企CAN网络测试项目案例,对比传统方式(需27天)与AI辅助方式(仅5天)的效率差异,展示81%的效率提升。文章详细介绍了从DBC文件提取信号信息的方法,包括DBC文件结构解析、信号定义说明,并提供了完整的Python解析脚本代码,可将信号信息导出为JSON或Excel格式,为后续AI批量生成测试用例奠定基础。

小明的博客 691

Codeforces 7D

题目大意:给出一个字符串,长度小于等于5*1e6。定义一个串是k回文的,当且仅当它的前半部分和后半部分是(k-1)回文的,求其所有前缀的回文值得和。 题解:我之前写了一个挫爆了的哈希,待会贴代码,交了20多次都没A,TLE了。然后看看网上的,判回文串实际上记一个前缀哈希值(后进的元素是低位),另一个哈希值(后进的元素是高位),若x[i]=y[i]则说明以i结尾的前缀为回文,那么它的值为dp[i>>

Sakai_Masato的博客 844

FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)

本文提供了一份详细的FAST-LIO2实战指南,帮助读者从零开始搭建香港大学火星实验室开源的这一高效激光惯性里程计框架。内容涵盖系统环境配置、依赖安装、源码编译、官方数据集测试以及参数调优,旨在让开发者快速上手并应用于机器人SLAM项目。

ppp33的博客 687

字符串hash---CodeForces - 7D

http://codeforces.com/problemset/problem/7/D 题意:长度是 n 的字符串 s,如果它自身是回文数,且它的长度为 floor(n / 2)的前缀和后缀是 (k - 1)-回文数,则它被称作 k-回文数。按照定义,任何字符串 (甚至空字符串) 都是 0-回文数。 字符串 s 的回文度,被定义为这样的一个最大数 k,满足 s 是 k-回文数。...

小糊涂的博客 271

MacOS上如何修改jupyter book的默认打开地址以及如何复制文件路径

记点笔记,才换新系统小半年,还是不太熟悉,所以记录一下笔记,感觉之后也会用到,希望能帮到你们。主要内容是:修改jupyter的默认地址以及复制文件路径。

魔仙的博客 1978

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1104

codeforces 7D Palindrome Degree

题目链接:http://codeforces.com/problemset/problem/7/D 题意:(1)任何串(包括空串)都是0-回文; (2)一个长度为n的回文串,若它的前n/2个字符和后n/2个字符都是(k-1)-回文,则它是k-回文。现给定一个串,设它的前缀分别是x-回文,求所有这些x值的和。 比如: abacaba 前缀                    x a  

Yedl的专栏 1128

5、硬件工程师笔试面试——上拉电阻、下拉电阻(2025版本)

本文系统介绍了上拉电阻和下拉电阻的原理与应用。上拉电阻通过连接电源确保电路高电平状态,常用于数字电路防抖、OC门驱动等场景;下拉电阻连接地线维持低电平,适用于低电平触发电路。文章详细分析了两种电阻的选择方法、功耗与响应速度的平衡策略,以及在高速信号传输中的影响差异。同时对比了二者的优缺点,并提供了模拟电路中的应用实例。最后给出了电阻值计算的工程方法,为硬件工程师的电路设计提供了实用参考。

XU157303764的博客 2868

Codeforces Beta Round #7 D. Palindrome Degree manacher算法+dp

题目链接: http://codeforces.com/problemset/problem/7/D D. Palindrome Degree time limit per test1 secondmemory limit per test256 megabytes 问题描述 String s of length n is called k-palindrome, if it is a pali...

weixin_30527423的博客 136

BART non-Cartesian 重建:并行成像 压缩感知

本文主要使用并行成像和压缩感知方法实现non-Cartesian MRI 数据的重建。

张哥频道:电生理信号和磁共振成像 1181

RK3568下MIPI屏幕调试技巧

通过合理配置设备树节点、精确计算像素时钟并完成编译烧录,可高效实现RK3568平台MIPI屏幕的点亮与显示调试。关键在于严格遵循屏幕规格书参数,结合内核日志定位问题,逐步优化时序配置。掌握这一流程后,开发者可快速适配不同分辨率、刷新率的MIPI屏幕,为嵌入式系统显示模块开发奠定基础。如果在调试中遇到特定问题(如驱动匹配失败、时钟计算误差),建议优先查阅屏幕规格书和RK3568芯片手册,或通过内核社区(如Linux-DRI邮件列表)获取支持。

文石_2009的博客 1204

CodeForces 7D Palindrome Degree 字符串hash

题目链接:点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define N 5001000 #define mod 1000000007 #define he

九野的博客 1708

【AUTOSAR-Nm】-2.2-通过CAN/Lin...信号报告Nm状态机的跳转

如何通过Can/Lin/Fr/Udp/J1939信号,获取每个通道对应状态机的跳转信息:“前一次状态”和“当前状态”。

「汽车电子助手」的博客 2463

Codeforces Beta Round #7 D. Palindrome Degree —— hash

题目链接:http://codeforces.com/contest/7/problem/D D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input standard input output standa

A man can be destroyed, but not defeated. 917

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces 7D Palindrome Degree 字符串hash DP

传送门:点击打开链接 D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output String s of length n is called k-palindrome, if

上决╇ф的ACM 1221

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

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

Palindrome Degree(CodeForces 7D)—— hash求回文

  学了kmp之后又学了hash来搞字符串。这东西很巧妙,且听娓娓道来。   这题的题意是:一个字符串如果是回文的,那么k值加1,如果前一半的串也是回文,k值再加1,以此类推,算出其k值。打个比方abaaba,k值为3,abaxxaba,k值为1。现在,给出一个串,让你求这个串的所有前缀(包括本身)的k值的和。   如果考虑马拉车,那么先预处理出每个地方的最长回文长度,然后不断的截断...

ddmxynl793173的博客 243

CodeForces - 7D Palindrome Degree【字符串hash】【dp】

【题目描述】 String s of length n is called k-palindrome, if it is a palindrome itself, and its prefix and suffix of length are (k - 1)-palindromes. By definition, any string (even empty) is 0-palindrome. ...

inv0ker的博客 392

Codeforces7 D. Palindrome Degree(hash+dp)

题意: 给定字符串,一个(k-回文串)s定义为: s串是回文串,且s[1,n/2]是((k-1)-回文串) (非回文串是(0-回文串)) 要求计算出给定字符串所有前缀的k,并输出他们的k的和 数据范围:n<=5e6 解法: 令d[i]表示s[1,i]的k值 显然d[i]=d[n/2]+1,需要满足s[1,n/2]与s[i-n/2+1,i]互为反串 正向负向都预处理一个hash就能快速判断是否是反串了 code: #include<bits/stdc++.h> using namespac

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 325

[dp][字符串哈希]Palindrome Degree Codeforces7D

Stringsof lengthnis calledk-palindrome, if it is a palindrome itself, and its prefix and suffix of length are(k - 1)-palindromes. By definition, any string (even empty) is 0-palindrome. Let's call the palindrome degree of stringssuch a maximu...

Cloth的博客 211

codeforces 7D Palindrome Degree 字符串hash

如果一个长度为n的字符串s,如果前

Broken Wings 979

Codeforces Beta Round #7 D. Palindrome Degree hash

D. Palindrome Degree 题目连接: http://www.codeforces.com/contest/7/problem/D Description String s of length n is called k-palindrome, if it is a palindrome itself, and its prefix and suffix of length are ...

weixin_33947521的博客 98

Codeforces Beta Round #7 D. Palindrome Degree —— 字符串哈希

题目链接:http://codeforces.com/contest/7/problem/D D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input stan...

weixin_30394633的博客 85

Codeforces Beta Round #7--D. Palindrome Degree(hash)

D. Palindrome Degree time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output String s of length n is called k-pali

随风的专栏 1629

CF 7D: Palindrome Degree

题目链接:http://codeforces.com/contest/7/problem/D 题意: “等级”的定义是, 若一个长度为len的前缀是回文串, 且它的长度为floor(len/2)的前缀和后缀的“等级”为k, 则它的等级是k+1。 求一个字符串所有前缀的“等级”和。 算法: 我是用manacher算法求的回文串。 manacher算法的介绍很多,比如

frog的小池塘 2027
上一篇: CodeForces - 985F Isomorphic Strings(哈希)
下一篇: HDU - 4763 Theme Section( kmp )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值