CodeChef - PALPROB Contest Page

基于simulink的自动紧急制动系统(AEB)的功能验证 本文手把手指导使用Simulink构建自动紧急制动系统(AEB)模型,通过五个关键步骤完成功能验证:1)搭建车辆动力学模型;2)设计雷达传感器模型;3)开发基于碰撞时间(TTC)的决策逻辑;4)设计标准化测试场景;5)进行仿真分析。重点讲解了AEB的多级触发机制(预警、辅助制动、自动制动)和核心指标验证方法,包括制动时机判断、减速度性能等。通过典型场景仿真,展示了AEB如何在2.5秒TTC触发预警,1.2秒TTC启动自动制动,有效避免碰撞。文章还展望了行人AEB、传感器融合等进阶研究方向,为自动驾驶安全系统 阅读详情

题目:一个长度为len的回文串的回文值定义1+这个字符串的前len/2个字符组成的字符串的回文值,如果一个字符串不是回文串,那么它的回文值为0。

给你一个字符串,求它的回文子串的回文值之和

思路:用half来保存每个字符串的前len/2个字符组成的回文串的节点

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f

const int MAXN = 100005, SIZE = 26;
struct Palindromic_Tree {
	int next[MAXN][SIZE];//next指针
	int fail[MAXN];//fail指针
	LL cnt[MAXN];//表示节点i表示的本质不同的串的个数(建树时求出的不是完全的,最后Count()函数跑一遍以后才是正确的)
	int sc[MAXN];
	int half[MAXN];
	int len[MAXN];//len[i]表示节点i表示的回文串的长度
	int S[MAXN];//存放添加的字符 S[MAXN << 1]
	int last;//指向上一个字符所在的节点,方便下一次add
	int n;//字符数组指针 //lbd, rbd
	int p;//节点指针
	/*int lbd,rbd;
	int last[2];//0表示在字符串的首部加上一个字符,1表示在尾部加上一个字符*/
	int NewNode(int l) {//新建节点
		for(int i = 0; i < SIZE; ++i)
			next[p][i] = 0;
		cnt[p] = sc[p] = 0;
		len[p] = l;
		return p++;
	}
	void Init(/*int x*/) {//初始化
		p = n = 0;
		NewNode(0); NewNode(-1);
		last = 0;
		S[n] = -1;
		fail[0] = 1;
		half[0]=half[1]=1;
	}
	int GetFail(int x/*, int d*/) {//和KMP一样,失配后找一个尽量最长的
		while(S[n - len[x] - 1] != S[n]) x = fail[x];
		return x;
	}
	void Add(int c/*, int d*/) {//d=0表示在首部添加字符,d=1表示在尾部添加字符
		S[++n] = c;
		int cur = GetFail(last);//通过上一个回文串找这个回文串的匹配位置
		if(!next[cur][c]) {//如果这个回文串没有出现过,说明出现了一个新的本质不同的回文串
			int now = NewNode(len[cur] + 2);//新建节点
			fail[now] = next[GetFail(fail[cur]/*, d*/)][c];//和AC自动机一样建立fail指针,以便失配后跳转
			next[cur][c] = now;
			if(len[now]==1) half[now]=0;
			else{
                 int pos=half[cur];
                 while(S[n-len[pos]-1]!=S[n]||2*len[pos]+4>len[now])
                    pos=fail[pos];
                 half[now]=next[pos][c];
			}
			sc[now]=1+(len[now]/2==len[half[now]]?sc[half[now]]:0);
		}
		last = next[cur][c];
		cnt[last]++;
	}
	LL Count() {
	    LL sum=0;
		for(int i = p - 1; i >= 0; --i){
			cnt[fail[i]] += cnt[i];
			sum+=cnt[i]*sc[i];
		}
		return sum;
	}
}tree;
char str[MAXN];
int main(){

    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%s",str);
        tree.Init();
        for(int i=0;str[i]!='\0';i++){
            tree.Add(str[i]-'a');
        }
        printf("%lld\n",tree.Count());
    }
    return 0;
}


Openclaw错误排查及解决方案之:Something went wrong while processing your request. Please try again. 阅读详情

相关推荐

第一篇:常见CAN错误帧及其排查方向

在本文中主要阐述各类错误帧的形成原因以及在使用同星硬件设备出现错误帧时,应当 如何进行排查并消除错误帧。在 CAN 总线通信中,通常遇见的错误帧主要为以下五种,其 分别是:bit error、ACK error、stuff error、CRC error 以及 form error。

u013089100的博客 1731

【CodeChef PALPROB】Palindromeness(回文自动机)

传送门 题解: 建立回文自动机,维护每个点right集合大小。 然后维护halfhalfhalf指针,表示failfailfail树上第一个长度小于等于自己的一半的回文后缀。 在建立的时候暴力跳祖先的half更新答案,复杂度还是由均摊分析O(∣S∣)O(|S|)O(∣S∣) 代码: #include<bits/stdc++.h> #define ll long long #defi...

zxyoi_dreamer的博客(不定期诈尸) 367

ZYNQ RFSoC 的DAC如何做到从 0到Fs频段 信号输出

之前一直没太了解 RFSoC 的DAC如何输出在 Fs/2 到 Fs 频率范围内的信号,例如 ZCU216中的 ZU49DR,其RF-DAC最大采样率是 9.85GSPS,如果想输出的信号中心频率在5.8G,它是如何有效输出在第二奈奎斯特区域范围的信号的。

weixin_44630490的博客 1551

【CodeChef-TREEPAL】Tree Palindromes(回文自动机)

传送门 题解: 由于一个点下方可能有多个不同的转移,原来的均摊分析在这里就失效了,我们可以存一个to数组表示会跳到哪里,这道题字符集很小,直接做就行了。 #include<bits/stdc++.h> #define ll long long #define re register #define gc get_char #define cs const namespace IO...

zxyoi_dreamer的博客(不定期诈尸) 319

Xilinx-复旦微-FPGA-眼图BlockDesign系统制作-针对PCIE系统

XIlinx-复旦微电子-FPGA-眼图BlockDesign系统制作-针对PCIE系统,手把手教你如何建立眼图测试

weixin_43444334的博客 2596

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 271

CodeChef PALPROB Palindromeness

Palindromeness  Problem code: PALPROB Tweet ALL SUBMISSIONS All submissions for this problem are available. Read problems statements

Occult 699

【OpenClaw从入门到精通】第48篇:企业“养虾”合规手册——审批备案+专网隔离+全流程管控(2026企业版)

随着OpenClaw在企业场景的规模化应用,“无审批部署、无备案运行、无隔离防护”已成为安全事件的主要诱因。本文基于启明星辰《OpenClaw类智能应用安全指引V0.1》,结合金融、能源行业头部企业落地实践,构建“审批-评估-备案-管控”全流程合规框架。核心内容包括四步审批备案流程、专网隔离部署规范、3套可直接复用的合规文档模板(使用申请单、安全评估报告、备案登记表),以及个人使用备案简化方案。通过本文,企业可建立“有据可依、有章可循”的OpenClaw管理体系,实现“专网部署、数据隔离、最小权限、全程监控

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 461

【CodeChef PALPROB】Palindromeness(回文树)

Description CodeChef居然提供了中文题面 Solution 建出PAM后,在Fail数上DFS,走到一个点时看它的祖先中有没有长度为⌊len2⌋⌊len2⌋\lfloor \frac{len}{2}\rfloor的,记录权值,乘上sizesizesize即可。 Code /*****************************************...

დ♂Hany01's Blog Space♂ღ 357

【RT-DETR有效改进】轻量级网络ShuffleNetV2(附代码+修改教程)

从今天开始正式开始更新RT-DETR剑指论文专栏,本专栏的内容会迅速铺开,在短期呢大量更新,价格也会乘阶梯性上涨,所以想要和我一起学习RT-DETR改进,可以在前期直接关注,本文专栏旨在打造全网最好的RT-DETR专栏为想要发论文的家进行服务。RT-DETR剑指论文专栏,持续复现各种顶会内容——论文收割机RT-DETR​​。

Snu77的博客 1993

LVGL v8学习笔记 | 09 - 进度条控件的使用方法(bar)

lv_bar_set_range必须放在lv_bar_set_mode前面,否则不生效。bar对象的API在lv_bar.h中声明,以lv_bar_xxx命名。此事件可以用来在进度条更新值之后更新别的控件(比如进度条旁边的文字)。可以看到,默认创建的进度条值是0到100。(3)设置进度条的范围值(最大值和最小值)(2)获取进度条的起始值。(3)获取进度条的最小值。(4)获取进度条的最大值。(1)设置进度条的当前值。(2)设置进度条的起始值。(1)获取进度条当前值。(5)获取进度条的模式。

Mculover666的博客(嵌入式) 1729

[回文自动机 fail树] Codechef April Lunchtime 2015. Palindromeness

传送门有个很显然的做法就是建出回文自动机,然后在fail树上倍增找到长度小于等于一半的最长的回文后缀。这样复杂度是O(|S|log|S|)O(|S|\log|S|)但实际上每个点也可以维护一个half指针指向它的合法回文后缀,那么找当前点的half就沿着父节点的half指针的fail指针网上爬就好了复杂度就是建回文自动机的复杂度 O(|S|log|Σ|)O(|S|\log|\Sigma|)fail树

CE玩家 481

linux 内核OOM问题定位-SLAB_DEBUG

首先看slabinfo按的size排序查看 slub object,可以查看 space 总占用大小,及objects个数判断泄漏点 为kmalloc-128。那个泄露多看/sys/kernel/debug的slab/kmalloc*-的alloc-traces和free-traces。SLAB或者SLUB有一个用就可以,改menuconfig没有clean会覆盖之前的更改,现在看一下编译的过程。或者配置defconfig,配置完之后需要clean后再编译。1,配置menuconfig。

陌上花开缓缓归以的博客 898

【CodeChef】Palindromeness(回文树)

【CodeChef】Palindromeness(回文树) 题面 Vjudge CodeChef 中文版题面 题解 构建回文树,现在的问题就是要求出当前回文串节点的长度的一半的那个回文串所代表的节点 定义\(half\)表示长度最长并且长度小于等于当前节点长度一半的回文串所代表的节点 \(half\)的求法,如果当前点的\(len=1\),\(half\)不存在 否则,从构建回文树时的父亲节点(不...

weixin_30608503的博客 103

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

visio安装包

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

[回文自动机][树形DP] CodeChef PALPROB

SolutionSolution 建出回文自动机,每个节点再维护一个halfuhalf_u指针,指向长度不超过⌊lenu2⌋\lfloor{len_u\over2}\rfloor的最长回文后缀。 树形DP出每个点的nessness表示回文指数,答案就是∑nessu∗|rightu|\sum ness_u*|right_u|。 failfail链上的节点的lenvlen_v一定是递减的。可以倍

Vectorxj的博客 438

温度PID控制PLC程序

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

HDU - 5421 Victor and String 在字符串的首尾添加字符

题目:有n种操作,开始给你一个空串,给你4中操作 1 c  在字符串的首部添加字符c 2 c  在字符串的尾部添加字符c 3  询问字符中的本质不同的回文串的个数 4 询问字符串中回文串的个数 思路:last[0]表示首部的操作的位置,last[1]表示尾部的操作的位置 代码: #pragma comment(linker, "/STACK:1024000000,10240000

ACVevtor的博客 1354

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

bzoj2160 拉拉队排练

题目: 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加油助威。一个阳

ACVevtor的博客 828

Gym - 100548G The Problem to Slow Down You

题目:给出A,B两个字符串,求A,B中相同的回文串的对数 思路:对A,B分别建一个回文树,然后分别从奇数根节点和偶数做一次dfs 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include

ACVevtor的博客 768

URAL - 2040 Palindromes and Super Abilities 2

题目:对于输入的字符串str (长度不超过5000000, 只包含a, b两种字符) 如果这个字符串从左到右依次加入字符形成str, 当每个字符加入时求新增加的本质不同的回文串的数量 思路:新增加的要么是0,要么是1,要注意输入和输出,不然会tle 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #in

ACVevtor的博客 609

HDU - 5394 Trie in Tina Town

题目:按要求建一棵树,每个节点有一个字符,求树上的价值=sum(len*cnt),len为回文串长度,cnt为该回文在树上出现了多少次。一共只有a,b,c,d这几种字符,回文串要保证是从上到下的。 思路:把last改成数组就可以了,保存每一层的last 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #

ACVevtor的博客 537

bzoj3676 回文串 回文树

题目: 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出  现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最  大出现值。  Input 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s。  Output 输出一个整数,为逝查回文子串的最大出现值。  Sample Input 【样例输入l】 abaca

ACVevtor的博客 522

HDU - 4426 Palindromic Substring

题目:a-z都表示一个0~25的整数,一个长度为len的回文串的价值由前(len+1)/2个字符组成的26进制整数表示, 给出一个字符串,询问第k小的回文子串的价值 思路:保存一下节点的价值 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #inc

ACVevtor的博客 502

CodeForces - 17E Palisection 邻接表的回文树

题目:给出一个字符串要求找出多少对有相交部分的回文子串。 思路:直接求相交的不好算,我们可以用总对数减去不想交的回文串的对数。 Manacher算法: 先利用差分数组统计出以输入串的第i个字符结尾的回文串的数量sum1[i],然后令sum2[i] = sum2[i - 1] + sum1[i]作为sum1的前缀和, 那么对于中心为i半径为R[i]的回文串来说, 处在这组回

ACVevtor的博客 471

URAL - 1960 Palindromes and Super Abilities 回文树

题目:给定一个字符串s,输出字符串s1...si (1 (1 ≤ len(s) ≤ 10^5) 思路:套一下模板就行了 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #i

ACVevtor的博客 450

HDU - 5658 CA Loves Palindromic 回文树

题目:给定一个字符串str,Q个询问l,r,问区间[l,r]内本质不同的回文串的个数 1≤T≤10, 1≤length≤1000, 1≤Q≤100000, 1≤l≤r≤length 思路:字符串长度不大,可以先预处理出来 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #incl

ACVevtor的博客 437

bzoj2565 最长双回文串

题目: 顺序和逆序读起来完全一样的串叫做回文串。比如 acbca 是回文串,而 abc 不是( abc 的顺序为“abc” ,逆序为 “cba” ,不相同)。  输入长度为 n 的串 S ,求 S 的最长双回文子串 T, 即可将 T 分为两部分 X , Y ,( |X|,|Y|≥1 )且 X 和 Y 都是回文串。 思路: 正向扫一遍,反向扫一遍 代码: #pragma commen

ACVevtor的博客 409
上一篇: URAL - 2040 Palindromes and Super Abilities 2
下一篇: HDU - 4426 Palindromic Substring
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值