[AC自动机+dp]PKU 3691--DNA repair

FLACS-CFD 气云爆炸模拟全流程工况构建指南:从泄漏到爆炸 摘要: 本文详细介绍了使用FLACS-CFD模拟气云爆炸的全流程构建方法,重点解决泄漏模拟到爆炸模拟的气云文件传递问题。核心步骤包括: 项目规划:明确泄漏源(甲烷管道腐蚀泄漏)和爆炸场景,建立标准目录结构; 网格设计:泄漏与爆炸模拟需采用兼容的网格,爆炸域应为泄漏域的子区域且网格划分一致; 泄漏模拟配置:通过.inp文件定义几何、网格、风场、燃料及泄漏源参数,确保输出爆炸所需的气云文件(*.uni/*.fla); 关键设置:统一燃料名称、时间点匹配、路径正确性,避免版本兼容性问题。 阅读详情
DNA repair
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 1469 Accepted: 650

Description

Biologists finally invent techniques of repairing DNA that contains segments causing kinds of inherited diseases. For the sake of simplicity, a DNA is represented as a string containing characters 'A', 'G' , 'C' and 'T'. The repairing techniques are simply to change some characters to eliminate all segments causing diseases. For example, we can repair a DNA "AAGCAG" to "AGGCAC" to eliminate the initial causing disease segments "AAG", "AGC" and "CAG" by changing two characters. Note that the repaired DNA can still contain only characters 'A', 'G', 'C' and 'T'.

You are to help the biologists to repair a DNA by changing least number of characters.

Input

The input consists of multiple test cases. Each test case starts with a line containing one integers N (1 ≤ N ≤ 50), which is the number of DNA segments causing inherited diseases.
The following N lines gives N non-empty strings of length not greater than 20 containing only characters in "AGCT", which are the DNA segments causing inherited disease.
The last line of the test case is a non-empty string of length not greater than 1000 containing only characters in "AGCT", which is the DNA to be repaired.

The last test case is followed by a line containing one zeros.

Output

For each test case, print a line containing the test case number( beginning with 1) followed by the
number of characters which need to be changed. If it's impossible to repair the given DNA, print -1.

 

Sample Input

2
AAA
AAG
AAAG    
2
A
TG
TGAATG
4
A
G
C
T
AGT
0

Sample Output

Case 1: 1
Case 2: 4
Case 3: -1
题目大意:给出一个字符串和若干个非法子串,求最少修改字符串中的多少个字符可以使得字符串中不存在非法子串。

分析:若字符串是01串,若子串长度为10,可以用经典的状态压缩dp解决,即:f[i,j]表示前i个,前9个数字状态为j的最小修改次数。然而,本题数据规模大得多,不能用这个dp。

我们来分析一下状态,对于以下的这个输入:

AAA

GT

XXXXXX

TC、AT、CT之类的状态其实都是一样的。

这些状态都是什么呢?

有穷状态自动机上的某些节点。

我们只要对所有的非法子串,构建一个AC自动机,那么自动机上的某个节点即为一类状态。

所以得到以下动态规划算法:

令f[i,j]表示对于字符串中的前i位,使得状态为自动机上的节点j,期间不经过任何一个非法子串需要修改的最少字符数。

则f[i,j]=min(f[i-1,k]+(1-ord(s[i]=way[k,j])))。其中,k为j的父亲节点(不一定是直接的父亲),way[k,j]为k连向j的边所代表的字母。这个转移方程不难理解,若第i位和边的字符不同,需要修改,答案+1,否则不用。答案便是max(f[len,i]),i不为某个非法子串的最后一个字母。

另外,在构建失败指针的同时,若某个节点的某个儿子为空,则要通过失败指针找到一个儿子,不然指向根。

具体的参看程序。

 

codes:

 

 

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上 ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。 阅读详情

相关推荐

PLc S7-200 smart如何使用Modbus 485通讯传输接收数据

西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器,从而实现PLC通过modbus方式控制其他器件。提示:以下是本篇文章正文内容,下面案例可供参考。

xjbsw0的博客 6万+

pku 3691 DNA repair AC自动机——DP

http://poj.org/problem?id=3691 题意: 给出n个DNA病毒串,然后给出一个需要修改的DNA片段,问需要最少修改多少个字符才能是该DNA片段不含DNA病毒串,修改后的DNA片段长度不变 思路:这题看了一天了,DP那地方好难懂。首先这里是多串匹配,我们用Trie树和fail的构造确定性有限状态自动机(DFA),然后再DFA上进行DP; 这里我DP理解了很长时间,d...

weixin_30608131的博客 63

YOLOv8实战:用Labelme标注自定义数据集并训练分割模型(附完整代码)

本文详细介绍了使用Labelme标注自定义数据集并训练YOLOv8实例分割模型的完整流程。从环境搭建、数据标注与格式转换,到模型训练、调优、验证及部署,提供了实战代码和调优建议。文章还探讨了如何结合追踪目标技术,实现视频流中的实例分割与目标追踪,为计算机视觉应用提供了一套可复制的解决方案。

552

[PKU/POJ][3691][DNA repair][AC自动机+DP]

先用AC自动机构建一个不含有任何病毒串的 DFA , dp[i][j] 表示到目标串的第 i 个字符,DFA 状态为 j 时的最小修改数量。则 dp[i][ son[j] ]= min{ dp[i][ son[j] ], dp[i-1][j]+ (tran[j][ son[j] ]!= str[i] ) }  tran[j][ son[j] ]表示从 j 到 son[j] 经过的字母边。 代码:...

信仰 忍耐 120

解决LangChain4j报错HTTP/1.1 header parser received no bytes

当使用调用自己部署的大模型服务时报错: 报错信息如下:

weixin_44455388的博客 2336

UE4-(蓝图)第五十五课图片九宫格拉伸的使用

一、为什么使用九宫格拉伸 在UI布局的时候,有时候使用的图片与我们要制作的UI大小有差距,如果图片是普通方式直接拉伸很可能造成图片四个角上的效果与原图片差距太大甚至是变形,这时候使用九宫格模式拉伸,可以保持图片四个角上的样式不发生改变,只对中间区域拉伸。 原始 正常拉伸: 九宫格拉伸: 二、图片参数设置 1.新建一个UI 控件蓝图,在CanvasPanel下拖入一个Image,选择一张...

Stone的博客 7889

HDU 2457 DNA repair(AC自动机+DP)题解

题意:给你几个模式串,问你主串最少改几个字符能够使主串不包含模式串 思路:从昨天中午开始研究,研究到现在终于看懂了。既然是多模匹配,我们是要用到AC自动机的。我们把主串放到AC自动机上跑,并保证不出现模式串,这里对AC自动机的创建有所改动,我们需要修改不存在但是符合要求的节点,如果某节点的某一子节点不存在,我们就把这个子节点指向他父辈节点存在的该节点(比如k->next[1]不存在,k-&...

努力,奋斗 351

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

noi2004-郁闷的出纳员(cashier) 解题报告

  NOI2004郁闷的出纳员【问题描述】 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。

幻想の天地 2051

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

qq_50001789的博客 1007

AI 视觉宠物喂食器:智能识别 + 精准投喂,打造宠物喂养新体验

AI 视觉宠物喂食器将边缘 AI 计算与传统硬件结合,既解决了传统喂食器的核心痛点,又兼顾了 DIY 的易用性和扩展性。无论是宠物主人 DIY 使用,还是小型创客团队产品化,该方案都具备较高的实用价值和落地性,为宠物智能化喂养提供了轻量化的实现路径。

weixin_42300449的博客 419

[动态规划]Pku2411--Mondriaan's Dream

Mondriaans DreamTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 3732 Accepted: 2156DescriptionSquares and rectangles fascinated the famous Dutch painter

幻想の天地 2022

YOLO11数据增强中的色彩空间变换:HSV、YUV等增强技术的原理、实现与参数调优全解析

摘要 本文介绍了色彩空间的基本概念及其在数据增强中的应用,重点分析了HSV色彩空间的原理与特性。色彩空间作为颜色表示的数学模型,在计算机视觉中具有重要作用,RGB、HSV、YUV等常用色彩空间各有特点。数据增强中的色彩变换能提升模型鲁棒性、缓解数据不平衡并防止过拟合。HSV色彩空间将颜色分为色调(H)、饱和度(S)和明度(V)三个独立分量,更符合人类视觉感知,便于针对性调整图像属性。文章详细阐述了HSV与RGB的转换公式,为YOLO11等目标检测框架的数据增强提供了理论基础。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 288

[动态规划+矩阵快速幂优化]Pku3420--Quad Tiling

Quad TilingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 1801 Accepted: 698DescriptionTired of the Tri Tiling game finally, Michael turns to a more

幻想の天地 1385

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[ac自动机]zoj3228 Searching the String

Searching the StringTime Limit: 7 Seconds      Memory Limit: 129872 KB Little jay really hates to deal with string. But moondy likes it very much, and shes so mischievous that she often gives

幻想の天地 1366

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Pku1037 A decorative fence 动态规划+递推

A decorative fenceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3468 Accepted: 1122DescriptionRichard just finished building his new house. Now the only

幻想の天地 1354

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[数学-欧拉函数]Pku2478--Farey Sequence

http://acm.pku.edu.cn/JudgeOnline/problem?id=2478 Farey SequenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5575 Accepted: 1998DescriptionThe Fare

幻想の天地 1056

[动态规划]Pku1390 Blocks

BlocksTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 1497 Accepted: 567DescriptionSome of you may have played a game called Blocks. There are n blocks

幻想の天地 971

[数学-farey序列]Pku3374--Cake Share

http://acm.pku.edu.cn/JudgeOnline/problem?id=3374 Cake ShareTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2836 Accepted: 700DescriptionUpdog pre

幻想の天地 947

[动态规划,tsp问题]pku2288 Islands and Bridges

Islands and BridgesTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 4173 Accepted: 1008DescriptionGiven a map of islands and bridges that connect these isl

幻想の天地 920

[AC自动机]hdu2222 Keywords Search

Keywords SearchTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3406    Accepted Submission(s): 1177Problem DescriptionIn

幻想の天地 898

[动态规划]Zju1234--Chopsticks

ChopsticksTime Limit: 10 Seconds      Memory Limit: 32768 KB In China, people use a pair of chopsticks to get food on the table, but Mr. L is a bit different. He uses a set of three chopsticks

幻想の天地 818

[动态规划]Pku3377--Ferry Lanes

http://acm.pku.edu.cn/JudgeOnline/problem?id=3377 Ferry LanesTime Limit: 2000MS Memory Limit: 131072KTotal Submissions: 2563 Accepted: 510Description

幻想の天地 770

vijos 不差钱 sbt的运用

 不差钱Buchaqian.pas描述:同学们一起看了小品《不差钱》,LX神突发奇想,想刁难一下十八居士,他让十八居士模拟一下点菜的过程。 输入:第一行为一个数price,表示价钱大于price的菜赵本山都不要。以下几行表示点菜的过程,每行两个整数p,np=1 表示在菜谱中添加一个价格为n的菜,这是第i个1号命令,这个菜的编号就是i,p=2 表示菜谱中第n号菜已

幻想の天地 763

[最短路spfa]pku1511-Invitation Cards

http://acm.pku.edu.cn/JudgeOnline/problem?id=1511 Invitation CardsTime Limit: 8000MS Memory Limit: 262144KTotal Submissions: 5784 Accepted: 1616DescriptionIn th

幻想の天地 713
上一篇: [ac自动机]zoj3228 Searching the String
下一篇: [计算几何-凸包]pku1113-Wall
fstephen
博客等级 码龄18年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值