HDU 3913 Suffix

STM32H743 ADC校准失败排查:HAL_ADCEx_Calibration_Start()的正确调用时机 本文深入剖析了STM32H743 ADC校准失败的核心原因,即错误地在ADC使能状态下调用HAL_ADCEx_Calibration_Start()函数,导致读数漂移。文章详细解释了校准必须在ADC禁用状态下进行的硬件原理,列举了典型错误场景,并提供了上电初始化与周期性重校准的正确代码实践,帮助开发者彻底解决ADC精度问题。 阅读详情
SUFFIX
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 85 Accepted Submission(s): 27


Problem Description
A string is a list of characters containing only letter ‘a’ to ‘z’. For example: “abcdefg”, “isun” are valid strings. “rocket323” is not a valid string.

A suffix of a string suf[i] is the list of characters at positions from i to n-1 (positions are labeled from 0 to n – 1, n is length of the string). For the string “hustacm”, suf[0] = “hustacm”, suf[1] = “ustacm”, suf[3] = “tacm”, suf[6] = “m”.

The suffix list L of a string is a permutation of numbers from 0 to n-1(n is length of the string), which satisfy the following condition:
suf[L[0]] < suf[L[1]] < suf[L[2]] < … < suf[L[n-1]].

For the string “aabac”, its suffix list is [0, 1, 3, 2, 4].
Here comes the question: Given a string S and a suffix list L, you are to change minimum number of characters of S so that the suffix list of the new string is equal to L.


Input
There are multiple cases, for each case:
The first line is integer n representing the length of the string. (1 <= n <= 500)
The second line is the string.
The third line is a permutation of numbers from 0 to n-1.


Output
For each case, output the minimum number of characters to change in order to satisfy the condition above, if there is no solution, just output -1.


Sample Input
3
abc
0 1 2
3
aab
2 0 1


Sample Output
0

2

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXV 500
#define MAXE 1000
#define INF 0x7fffffff

int list[MAXV];
char s[MAXV];
int f[MAXV + 1][26];
bool equal[MAXV];
int n;

struct Edge {
    int ed, next;
} edge[MAXE];

int head[MAXV], nEdge;

void init() {
    memset(head, 0xff, sizeof(head));
    nEdge = 0;
}

void addEdge(const int a, const int b) {
    edge[nEdge].ed = b;
    edge[nEdge].next = head[a];
    head[a] = nEdge++;
}

bool find(int cur, int tar){
	int i, p;
	if (cur >= n) return false;
	if (tar >= n) return true;
	for (i = head[cur]; ~i; i = edge[cur].next){
		p = edge[i].ed;
		if (p == tar) return true;
		return find(p, tar);
	}
	return false;
}

int imin(int a, int b){
	return a < b ? a : b;
}

void calc(){
	int i, j, k;
	for (i = 0; i < n - 1; i++){
		equal[i] = find(list[i + 1] + 1, list[i] + 1);
	}
	equal[i] = true;
	for (i = n - 1; i >= 0; i--){
		for (j = 0; j < 26; j++){
			f[i][j] = n + 1;
			for (k = j + 1 - equal[i]; k < 26; k++){
				f[i][j] = imin(f[i + 1][k], f[i][j]);
			}
			if (s[list[i]] != j + 'a') f[i][j]++;
		}
	}
	
	j = n + 1;
	for (i = 0; i < 26; i++)
		j = imin(j, f[0][i]);
	if (j > n) j = -1;
	printf("%d\n", j);
}

int main(){
	int i;
	while(scanf("%d", &n) != EOF){
		scanf("%s", s);
		init();
		memset(f, 0, sizeof(f));
		memset(equal, 0, sizeof(equal));
		for (i = 0; i < n; i++) scanf("%d", &list[i]);
		for (i = 0; i < n - 1; i++){
			addEdge(list[i + 1], list[i]);
		}
		calc();
	}
	return 0;
}
/******************
dp
转移规律不好找,字符串之间比大小,转移起来不好搞,但这题比较的都是后缀关系的字符串
根据list,从a[n-1]和a[n-2]的大小关系开始推一推,会发现其实每个字符之间的大小关系都是确定的
a[list[i]] < a[list[i + 1] 或者 a[list[i]] <= a="" 1="" f="" min="" 1="" k=""> j 或者 k >= j} + (str[list[i]] != j)

觉得开头要是不推的话,就想不到这些...
******************/


完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码) 申请公司的苹果开发者账号和企业级的苹果开发者账号时,都会用到邓白氏编码,也就是我们申请苹果开发者账号时需要填写的D-U-N-S Number。     申请这个邓白氏编码是免费的,但是从像华夏邓白氏公司提交申请到可以申请苹果开发者账号来用这个9位的D-U-N-S Number,需要一段时间,我申请得到D-U-N-S Number,用了8个工作日(不算周末哦) 阅读详情

相关推荐

基于opencv自定义网格板的相机标定软件源码

本软件开发版使用的是VS2013和QT5.7, 安装版的需要安装VS核心库(目录里的vcredist_x64.exe, 已安装VS的不需要)。采用强大的模板匹配算法,本程序适用于自定义大范围网格标定(本例程网格使用的是自己画的网格板31*21*10cm),网格点识别度高,矫正速度快,精度高。 使用步骤 第1步: 打开图片,打开标定工具GridCalibTool.exe, 然后选择打开一张待标定的图(CalibFiles文件夹下的500.jpg)。如下图: 第2步: 提取待标定区域(去掉多余部分,只保留网

qq_33138437的博客 1121

关于后缀树的入门及简单应用

良心百度, 找到了一篇好文章, 非常详细清楚 后缀树 匠心十年

上班了开始工作在家没事做 438

从图片到3D模型:用Tripo+Unity打造AI建模流水线(避坑指南)

本文详细介绍了如何利用Tripo和Unity构建AI驱动的3D建模流水线,从图片到3D模型的高效转换。通过文生模型和图生模型的双模系统,开发者可以大幅提升建模效率,适用于游戏开发和数字内容创作。文章还提供了环境配置、图片预处理、批量生成等实用技巧,帮助开发者避开常见陷阱。

weixin_27024175的博客 615

后缀树学习笔记

在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题: 在文本T里查询T是否包含子串P(复杂度同流行的KMP相当)。 文本T里找出最长重复子串。比如abcdabcefda里abc同da都重复出现,而最

zhang20072844的专栏 1195

uniapp map地图实现marker聚合点,并点击marker触发事件

【代码】uniapp map地图实现marker聚合点,并点击marker触发事件。

weixin_44705979的博客 5437

自定义载板RK3588HDMI输入配置完整解决方案

✅ HDMI输入信号检测✅ 自动时序识别(支持1080p@60Hz等标准格式)✅ V4L2视频设备接口✅ 实时视频流捕获✅ H.264编码录制✅ HDCP内容保护支持问题根因识别:发现了hdmim1模块资源冲突的本质问题硬件设计理解:明确了Orange Pi 5 Plus的真实硬件设计意图功能实现:成功启用HDMI输入功能,替代了无法使用的HDMI1输出完整验证:建立了从硬件检测到视频录制的完整测试流程。

梁俊星的博客 1271

HDU - 4416 ——Good Article Good sentence (后缀树组)

传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=4416 In middle school, teachers used to encourage us to pick up pretty sentences so that we could apply those sentences in our own articles. On

Vision 638

【即插即用模块】注意力篇 | TGRS 2025 | SCPP:独家复现!三特征多尺度注意力融合,涨点必备!

摘要:SCPP(Scale-aware Pyramid Pooling)是一种创新的多尺度特征融合模块,专为U型网络瓶颈设计。它通过局部特征提取(1×1卷积)、多尺度膨胀卷积(1/3/5膨胀率分支)和全局特征聚合(全局平均池化)三重结构,结合SE通道注意力机制和自适应加权融合,显著提升特征表达能力。实验表明,SCPP能有效解决边缘模糊和错误检测问题,在遥感图像分割等任务中表现优异。该模块支持即插即用,适用于各类需要多尺度特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 944

HDU 2144 Evolution 后缀树/后缀数组

仔细读题

_int_me的博客 207

无人驾驶Autoware导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对无人驾驶Autoware介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 2397

芒果YOLO11改进21:检测头Head篇:即插即用|新颖轻量化非对称多级压缩LADH检测头,原创改进适配YOLOv8高效检测头,检测头新颖性改进,全网首发独一份

检测头Head篇:即插即用|新颖轻量化非对称多级压缩LADH检测头,原创改进适配YOLOv8高效检测头,检测头新颖性改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 792

HDU 3518 Boring counting - 后缀树

(其实这题我卡了一个月会乱说?) 基本就是参考之前的这篇文章。稍微多了点东西在里面。 另外,貌似我搜到的解题报告大都是用后缀数组的,不知道什么情况。 言归正传,建树的过程就不多说了,这里假设已经建立了目标字符串的后缀树。我们知道trie和后缀树是等价的,所以下文将不加区分的使用这两个概念。 如果想知道一个字符串中重复字串的个数,只需要把它的所有后缀插入到trie中(包括结束字符

Prairial的专栏 936

CAPL控制程控电源

汽车电子测试过程中,除了实车测试,还有台架测试,在进行台架测试时,都需要通过电源来模拟汽车电瓶给ECU供电,如果要进一步进行比较高效的压力测试或自动化测试,就需要用到程控电源,所以本章主要介绍CAPL是如何来控制程控电源的。

测试领域技术分享 4389

hdu 5635 LCP Array(BC第一题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5635 LCP Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 282    Accepte

Hunt Counter 425

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

hdu 3948后缀树组-4

http://acm.hdu.edu.cn/showproblem.php?pid=3948  题意:求一个给定串所有不同的回文子串个数。。distinct palindrome。。   分析: 求一个串中不相同的子串个数是通过扫描一遍height数组,每次如果前面的he

xuanflyer 2320

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

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

HDU 3709 Balanced Number

Balanced Number Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 162 Accepted Submission(s): 59 Problem Description A balanced number is a

cmonkey 2287

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

codeforce 55D Beautiful numbers

D. Beautiful numbers time limit per test:4 seconds memory limit per test:256 megabytes input:standard input output:standard output Volodya is an odd boy and his taste is strange as well. It see

cmonkey 2177

POJ 3252 Round Number

Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5077 Accepted: 1736 Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scisso

cmonkey 1488

POJ 2430 Lazy Cows

Lazy Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1897   Accepted: 718 Description Farmer John regrets having applied high-grade fertilizer to hi

cmonkey 1446

HDU 3880 luck number

#include #include #include int main(){ __int64 i, j, k; __int64 a, b, M; while(scanf("%I64d%I64d%I64d", &a, &b, &M) != EOF){ if (a > b){ k = a; a = b; b = k; } if (b == 1){ k

cmonkey 1436

POJ 1671 Rhyme Schemes

Rhyme Schemes Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1175   Accepted: 645   Special Judge Description The rhyme scheme for a poem (or stanza o

cmonkey 1335

HDU 3864 D_num

Problem Description Oregon Maple was waiting for Bob When Bob go back home. Oregon Maple asks Bob a problem that as a Positive number N, if there are only four Positive number M makes Gcd(N, M) == M

cmonkey 1202

HDU 3828 A+B problem

Problem Description QQ and OO always play the game of A + B. QQ gives tow decimal number A and B, and OO answers the sum at once. But to do the same things too often is boring. So, today they are fed

cmonkey 1127

HDU 3652 B-number

题意: 1..n的数中数字包含‘13’且能被13整除的,有多少个。n 分析: 按位DP 困在能被13整除上了,查了能被13整除的数的特性,不知道怎么转化dp... 后来看了解题报告,状态上多记录个模13的余数就好了~ #include #include #include int ans; int num[10], ln; int f[10][13][3]; void

cmonkey 1084

POJ 1037 A decorative fence

A decorative fence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5280   Accepted: 1880 Description Richard just finished building his new house. Now the

cmonkey 1062

2014 微软 编程之美 初赛 第一场 题解

2014 微软 编程之美 初赛 第一场 题解 趁热火写个题解.这场一共才三题. 第一题 焦距 这...大致就是给你公式照着敲,处理好字符串就行,自认为代码写的蛮干净的~~ 第二题 树 这是最难的一题,但是大数据太弱了,竟然都暴过了... 题意:N(1e5)个点的树,初始点权都为0,有Q(1e5)个操作,每次操作在以u为根的子树中,对深度(根的深度为1)在区间[l,r]内

cmonkey 1062
上一篇: codeforce 55D Beautiful numbers
下一篇: HDU 3920 Clear all of them I
cmonkey
博客等级 码龄17年 50粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值