hdu 4295 4 substrings problem

QV_1791504590577.mp4 立即下载

4 substrings problem

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 442    Accepted Submission(s): 148


Problem Description
  One day you heard the following joke
     In America, you write strings.
    In Soviet Russia, String writes YOU!!
1
  And find that now string is writting you! So to get rid of it, you must solve the following problem:
  Given a string S and its four substring a,b,c, and d. In a configuration, you can place four substrings exactly one position it occurs in S (they may overlap), and characters covered by at least one such substring is called “covered”.
  You should solve for minimum and maximum possible number of covered characters in a configuration.
  You may assume that s contains only lowercase letters, and is of length less than 4096. However, lengths of a,b,c, and d would never exceed 64.
-------------------------------------------------------------------
1An infamous Russian reversal
 

Input
  There are several test cases.
  For each test case there are 5 lines, denoting S,a,b,c, and d, respectively.
  Please process until the EOF (End Of File).
 

Output
  For each test case, please print a single line with two integers, first the minimum, then the maximum.
 

Sample Input
  
hello he l l o abacaba ab ba a c
 

Sample Output
  
4 5 4 6
 

Source


代码:(比较低效)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=4100;
char s[N],ss[70];
short l,sl[4],maxl;
short flag[N],d1[N][16][65],d2[N][16][65];
int main()
{
	int i,j,k,x;
	while(~scanf("%s",s))
	{
		l=strlen(s);
		memset(flag,0,sizeof(flag[0])*l);
		for(i=0;i<4;i++)
		{
			scanf("%s",ss);
			sl[i]=strlen(ss);
			for(j=0;j+sl[i]<=l;j++)
			{
				for(k=0;ss[k];k++)if(s[j+k]!=ss[k])break;
				if(ss[k]=='\0') flag[j]|=1<<i;
			}
			if(sl[i]>maxl) maxl=sl[i];
		}
		memset(d1,0x3f,sizeof(d1[0])*(l+1));
		memset(d2,0xc3,sizeof(d1[0])*(l+1));
		d1[0][0][0]=d2[0][0][0]=0;
		for(i=0;i<l;i++)for(j=0;j<16;j++)for(k=0;k<=maxl;k++)
		{
			d1[i+1][j][k?k-1:0]=min(d1[i][j][k],d1[i+1][j][k?k-1:0]);
			d2[i+1][j][k?k-1:0]=max(d2[i][j][k],d2[i+1][j][k?k-1:0]);
			for(x=0;x<4;x++)
			{
				if((1<<x&~j)&&(1<<x&flag[i]))
				{
					short t=max((short)k,sl[x]);
					d1[i][1<<x|j][t]=min((short)(d1[i][j][k]+t-k),d1[i][1<<x|j][t]);
				    d2[i][1<<x|j][t]=max((short)(d2[i][j][k]+t-k),d2[i][1<<x|j][t]);
				}
			}
		}
		printf("%hd %hd\n",d1[l][15][0],d2[l][15][0]);
	}
	return 0;
}


volatility 内存取证工具 volatility 内存取证工具,用于内存分析 立即下载

相关推荐

YOLO26算法皮革表面缺陷检测+训练好的模型+124张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[颜色(color), 切(cut), 折叠(fold), 胶水(glue), 好的(good), 戳(poke)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 68 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.7582** mAP50-95 | 0.4306 Precision | 0.6226 Recall | 0.6520 train/box_loss | 0.8731 train/cls_loss | 2.3543 val/box_loss | 1.3709 val/cls_loss | 3.9767 【训练过程分析】 从一开始的配置就定下了基调,训练配置包括了 yolo26n 模型、100 个 epoch,学习率初始设为 0.01,输入尺寸定为 640x640,批次大小为 24。这组配置在开始阶段表现得不错,模型刚开始训练时的 loss 降低得很快,这表明模型能够迅速从数据中吸收信息。但到了中后期,loss 曲线变得愈发平缓,从第 50 个 epoch 开始,即使我增加了学习率衰减的频率,仍然感到曲线在挣扎,像是陷入了平台期。这期间模型的收敛节奏明显减缓,似乎有些“停滞不前”的迹象。到了最后,模型确实收敛了,但在第 68 个 epoch 时 mAP50 获得了 0.7582 的值,这是一个不错的成绩,但与理想值相比仍有提升空间。... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

HDU 4295 4 substrings problem

HDU_4295     可以用f[i][j][k]表示递推到S的第i个字符时,选取的字符串的集合为k(用二进制表示),从当前字符开始向后已经覆盖了长度j的字符。     在这里不妨只讨论最小覆盖长度,最大覆盖长度类似。为了方便dp所以选用刷表的方式,首先令f[i][0][0]为0,接着对于任意一个f[i][j][k],实际上有两种决策,一种是当前这个位置什么也不放就过度到下一个字符,那么就有...

weixin_34409741的博客 83

YOLO26算法花生异常状态识别+训练好的模型+113张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[异常的(abnormal)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 63 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9723** mAP50-95 | 0.8879 Precision | 0.9362 Recall | 0.9444 train/box_loss | 0.4558 train/cls_loss | 0.6201 val/box_loss | 0.4368 val/cls_loss | 0.6930 【训练过程分析】 自从开启了训练任务,每天盯着那根不断波动的 loss 曲线,感觉就像在过山车里兜兜转转。第一轮的训练,模型似乎对数据还不够熟悉,loss 还是较高,尤其是在前 10 轮,loss 下降的速度虽然很快,但并不均匀,有时甚至会有些许反复。到了 20 轮时,loss 曲线明显放缓,似乎进入了一个相对平稳的阶段,但这并没有带来 mAP50 的快速提升。从第 20 轮到第 40 轮,训练过程显得有些枯燥,loss 持续在某个数值附近徘徊,有时候还会在 0.45 到 0.48 之间跳动。到了 40 轮后,我明显感觉到训练进入了一个瓶颈期,loss 曲线开始呈现平台状态,即使再训练几轮,loss 下降的幅度也不大。直到 55 轮左右,loss 才开始缓慢下降,但整个训练过程都让人感觉像是在与时间赛跑,尤其是第 6... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

HDU 4295 4 substrings problem (状态压缩DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4295 题意:给出一个主串S和四个子串,将四个子串放在S的恰当位置,使得最后四个子串覆盖的总字符最小、最大?输出最小最大值。 思路:f[i][j][k]表示匹配到S的第i个字符,从第i个字符开始向后延伸了j个字符,使用的子串集合为k所得到的最优值(最小最大,下面以最小为例)。那么对于f[i][j][...

weixin_34378969的博客 211

视频编码压缩11111

视频编码压缩11111

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的两相交错并联Boost电路的仿真模型,系统阐述了该拓扑结构在提升系统效率、降低输出电流纹波以及改善动态响应特性方面的技术优势。文中涵盖了主电路架构设计、双闭环控制策略(电压环与电流环)的实现原理、关键参数(如电感、电容、开关频率)的选取依据,并通过仿真结果验证了控制方案的有效性与稳定性。该模型突出展示了多相交错技术在功率变换器中的应用价值,有助于深入理解现代电力电子系统的设计思路与优化方法,适用于新能源发电、储能系统及高效率DC-DC变换器的研发场景。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作经验的电气工程、自动化、能源动力等相关专业的本科高年级学生、研究生,以及从事电源变换器设计与开发的工程技术人员。; 使用场景及目标:① 掌握两相交错并联Boost电路的工作机理及其在减小输入/输出电流纹波中的作用;② 学习并实践双闭环反馈控制策略的设计与调试方法;③ 利用仿真模型开展控制器参数优化,提升系统的稳态精度与抗扰动能力,为后续硬件原型开发提供理论支撑与设计参考。; 阅读建议:建议读者结合仿真模型逐步操作,重点关注交错控制时序、占空比分配、电感电流交错现象及环路补偿设计,对照理论分析进行波形观测与参数调整,深化对多相并联拓扑动态特性的理解,并将其迁移应用于实际工程问题中。

hdu 4295 4 substrings problem DP 字符串

题意:给定一个字符串,还有它的四个字串, 选择合适的位置让这些子串覆盖原串,问最多和最少的覆盖字符数。 做法:先用个法子求出每个字符位置是否可以放某个串,然后建立状态,dp[i][j],i是当前探索的位置,j是匹配点。值得注意的是,每个点可能可以匹配多个字串,这个可以用类似背包的手法解决,即在一个位置多次匹配计算修正,具体看代码,其实数组是可以降成一维的 #include #include

uiiの技术随笔 1194

三相维也纳Vienna整流器电流过零畸变消除仿真模型【三种消除方法】(Simulink仿真实现)

内容概要:本文档围绕“三相维也纳Vienna整流器电流过零畸变消除仿真模型”展开,详细提供了基于Simulink平台实现的三种电流过零畸变抑制方法的仿真模型,旨在解决Vienna整流器在实际应用中由于开关死区效应、器件非理想特性等因素导致的输入电流在过零点附近出现波形畸变的问题,从而提升功率因数和系统效率。文档配套包含9kW三相三开关Vienna PFC整流器的Mathcad计算书,支持用户根据不同功率等级和电压规格进行系统级参数设计与优化。此外,资源还整合了双闭环控制策略、中点电压平衡控制、空间矢量脉宽调制(SVPWM)等关键技术的仿真模型,形成了一套完整、可复用的Vienna整流器控制系统研究与开发体系,适用于高性能电力电子变换器的研发与教学实践。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事高功率因数整流器、PFC电路、新能源发电、电动汽车充电系统或工业电源研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解Vienna整流器电流过零畸变的产生机理及其对系统性能的影响;②对比分析并验证三种畸变抑制方法在不同工况下的控制效果与适用范围;③开展高效率、高功率因数整流系统的建模、控制器设计与仿真验证工作;④支撑高水平学术论文撰写、科研项目申报或实际工程项目的技术预研与方案论证。; 阅读建议:建议首先利用Mathcad计算书完成主电路参数设计,随后在Simulink中搭建或修改相应的控制模型,通过设置不同负载与输入条件,对比分析各方案下输入电流THD、功率因数、中点电位波动等关键指标,深入掌握控制算法的动态响应特性和鲁棒性,同时可结合双闭环架构与中点平衡策略进一步优化系统整体性能。

hdu4295 4 substrings problem 状压dp

4 substrings problem Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 583    Accepted Submission(s): 180 Problem Description   One d

WONDERZY 670

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并非围绕该主题展开,而是作为一份优快云博客或科研资源共享平台的文章汇总清单,集中展示了多个工程技术领域的仿真研究与算法实现。涵盖的主要方向包括电力电子(如LLC谐振变换器、VSC-HVDC、PMSM控制)、电力系统优化(潮流计算、微电网调度、无功优化)、智能优化算法(遗传算法、粒子群优化、NSGA-II、多元宇宙算法等)、控制理论(模型预测控制、卡尔曼滤波、滑模控制)、信号与图像处理(故障诊断、雷达SAR成像、双目视觉测距)、无线通信与传感器网络、无人机路径规划与多智能体编队控制、车间调度、深度学习应用(LSTM、CNN、DQN)等。所有条目均基于Matlab/Simulink或Python实现,强调提供完整的仿真模型、源代码、参考文献及详细说明文档,便于用户直接下载与复现。该文档本质为“荔枝科研社”团队发布的科研技术服务推广目录,旨在展示其在多学科仿真建模方面的技术积累与资源服务能力; 适合人群:具备一定工程背景和编程基础的研究生、高校教师、科研人员以及从事自动化、电气工程、控制科学与工程、计算机科学、通信工程、智能制造等相关领域的技术人员; 使用场景及目标:①为科研工作者提供成熟的算法实现方案与仿真模板,显著降低课题开发与论文复现的时间成本;②辅助完成课程设计、毕业设计、科技竞赛(如数学建模大赛)、期刊论文复现等任务;③推动先进控制策略、智能优化算法和数据驱动方法在电力系统、智能制造、无人机集群、新能源管理等前沿领域的应用研究与成果转化; 其他说明:所有资源均通过百度网盘或微信公众号“荔枝科研社”免费提供下载,配套资料齐全,包含仿真模型、可运行代码、论文参考文献、技术文档等,支持快速部署、结果验证与二次开发,适用于教学、科研与工程实践场景。

基于单串电池保护IC:DW01-A/J开发的Battery Charger ,支持瞬态100A电池供电能力,适用于儿童 大脚车类

文件内含:原理图、PCB gerber、BOM,以及SMT位置文件,已验证完毕,可直接生产。

HDU 4295 4 substrings problem(状态压缩DP)

题意: 给定一个母串S,和S的子串a,b,c,d。求子串能最多(最少)覆盖母串的多少字符?每个子串必须用上,且只能使用一次。 Sample: hello he l l o 答案为:4 6 分析: 每个子串只能使用一次,且全部用上,集合状态,状态压缩。然后动态规划: dp[i][j][k]表示S串里考虑到第i个字符,字符串集合状态为k(二进制状态压缩),从...

dechi5213的博客 185

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

HDU 4295 4 substrings problem [字符串DP]

  求用一个串的四个子串能覆盖原串的最大和最小长度。   比赛的时候没有出这一题,其实思路上差不多都是对的,但细节上没有实现好。。   三维的字符串DP,首先处理出每个子串能够开始的位置,这个暴力一下就行。然后用d[i][j][k]表示长度为i状态为j从当前位置开始已经有k个字符被覆盖的最小长度,j是个四位的二进制状态,为1代表已经使用了这个串。当前位置可以选择使用或者不使用新的未使用子串,D...

weixin_34367845的博客 113

结构光三维重建2——多频外差解包裹

本文深入解析了结构光三维重建中的多频外差解包裹技术。针对四步相移法产生的相位包裹问题,该方法通过投影多组不同频率的条纹光,利用外差原理逐级解算,最终获得精确、连续的绝对相位值,是实现高精度、稳健三维重建的关键步骤。

weixin_29056101的博客 350

MOOS-ivp 实验三 MOOS简介(3)

MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MOOS-ivp 实验三 MOOS简介(3)六、A Simple Example with pXRelay1.pXRelay基本使用2.pXRelay简单例子3.pXRelay实验七、First Experiments in Modifying MOOS App Code1.下载一个MOOS模板文件2.打开MOOS模板文件总结 六、A Simple E

weixin_44151170的博客 2534

HDU 4295 4 substrings problem(状态压缩)

/* 内存超了,这道题原来不想做,后来打算只要把数据过了就行 结果内存超了,状态压缩,具体思路参见:http://acmicpc.info/archives/915 */ #include #include const int INF = 4100; int d1[4096][16][64], d2[4100][16][64]; char S[4100], a[4][70]; int can

1020

【飞控】UAV Toolbox Support Package for PX4 Autopilots安装与配置

安装配置UAV Toolbox Support Package for PX4 Autopilots硬件安装包

m0_58373406的博客 1617

【Linux 命令实战(04):文件内容查看,掌握 cat、less、head、tail】

cat:快速查看文件内容。less:分页浏览文件,支持搜索。head:查看文件开头。tail:查看文件末尾,支持实时跟踪。其中,tail -f是我建议大家重点掌握的命令。在自动化测试工作中,很多时候我们不需要等整个任务结束才分析结果。通过实时跟踪日志,就可以观察程序执行过程,及时发现接口异常、数据库连接失败等问题。当然,本篇还只是文件内容查看的基础。后面我们会继续学习如何从大量日志中筛选关键词、统计错误数量、定位异常记录。

一些微不足道的见解、希望能帮助各位 202

Android 编译系统(Build System)剖析

make是一种自动化构建工具,通过读取Makefile将源代码自动编译为可执行程序和库文件。

虎哥LoveDroid 2169

【多目标跟踪】ByteTrack复现(有yolov5例子)

1.环境 ubuntu16.04 cuda10.1 cudnn7 python3.6 Cython matplotlib>=3.2.2 numpy>=1.18.5 opencv-python>=4.1.2 Pillow PyYAML>=5.3 scipy>=1.4.1 tensorboard>=2.2 torch>=1.7.0 torchvision>=0.8.1 tqdm>=4.41.0 seaborn>=0.11.0 easydic

聿默的博客 1万+
上一篇: hdu 4297 One and One Story
下一篇: SGU 304. Mars Stomatology
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值