HDU 5745 dp, bitset优化

第二节:Vben Admin 登录逻辑梳理和对接后端准备 第一节,我们已经配置了前端环境,运行起来了我们的Vben Admin的项目。本节内容,我们先熟悉下项目的目录和文件,然后开始准备对接后端程序路由在 src/router页面在 sr/views本节前端登录逻辑梳理完成了,后端只要在/api/login 接口编写返回逻辑,前后段就可以打通了,具体详情我们下一节介绍。 阅读详情

题目链接:见这里

题意:

N≤105的母串,M≤5000的模式串
对于模式串,不相邻的2个字符可以和相邻的交换
即abcd,ab换和cd也可以换,但bc换了cd就不能换了
求每个位置是否能匹配模式串

解题思路:

f[i][j][3]:=母串匹配到i,模式串匹配到j,0和前面换,1正好匹配,2和后面换
转移:f[i][j][0]=f[i−1][j−1][2],si=tj−1
f[i][j][1]=f[i−1][j−1][0] | f[i−1][j−1][1],si=tj
f[i][j][2]=f[i−1][j−1][0] | f[i−1][j−1][1],si=tj+1
由于dp维护的都是bool,且只从i−1转移过来
所以我们可以预处理母串字符集在母串中的位置到bitset中
对于每次转移只要左移一次并且与上匹配的模式串的字符的状态就好
即整体转移母串所有字符,左移一次相当于对上了当前状态的位置
时间复杂度为O(nm/64),bitset标准库里压ULL
事实上搞模式串的状态也是可以的

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
typedef bitset <N> Sta;
int n, m;
char s[N], t[N];
Sta f[2][3], g[26]; //bitset 压缩第一维, 滚动第2维
int main()
{
    int T;
    scanf("%d", &T);
    while(T--){
        scanf("%d%d", &n, &m);
        scanf("%s%s", s+1, t+1);
        for(int i = 0; i < 26; i++) g[i].reset();
        for(int i = 1; i <= n; i++) g[s[i]-'a'][i] = 1;
        int cur = 0;
        for(int i = 0; i < 3; i++) f[cur][i].reset();
        f[cur][1].set(); //f[cur][0][1] = 1
        for(int i = 1; i <= m; i++){
            int pre = t[i - 1] - 'a', now = t[i] - 'a', nxt = t[i+1] - 'a';
            if(i > 1) f[!cur][0] = (f[cur][2] << 1) & g[pre];
            else f[!cur][0].reset();

            f[!cur][1] = (f[cur][0] | f[cur][1]) << 1 & g[now];

            if(i < m) f[!cur][2] = (f[cur][0] | f[cur][1]) << 1 & g[nxt];
            else f[!cur][2].reset();
            cur = !cur;
        }
        for(int i = 1; i <= n - m + 1; i++){
            bool ans = f[cur][0][i + m - 1] | f[cur][1][i + m - 1];
            putchar("01"[ans]);
        }
        for(int i = n - m + 2; i <= n; i++) putchar('0');
        putchar('\n');
    }
    return 0;
}
Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证 SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制 阅读详情

相关推荐

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

hdu 5745 dp+bitset优化

分析: 这题实际上是一个dp[105][103][3]dp[10^5][10^3][3]的空间和时间优化,由于其是一个bool的形式,我们可以让第一维存在bitset中,第二维滚动数组实现,来优化空间。至于时间就是bitset进行逻辑运算是按照字节来的常数优化了很多。#include <cstdio> #include <cstring> #include <iostream> #include

JIBANCANYANG 711

Rocfall安装包&安装教程

Rocfall 第一步:下载安装包 下载路径: 链接:https://pan.baidu.com/s/1Dzvxzv67dSPRi7f7ZT9EeA 提取码:o9pl 第二部:安装 安装包解压 选择part1进行解压 点击Setup.exe启动安装 生成Serial Number 替换启动程序 安装完毕 素材来源于网络(禁止用于商业仅用于完成毕业设计和研究使用) 谢谢! ...

cym的博客 8704

hdu5745 La Vie en rose【dp+bitset优化】

hdu5745 bitset+dp。bitset直接进行位运算时可以将复杂度降低到O(N/8)。用dp[i][j][k]代表s串第i个字符,p串第j个字符,k=0,1,2分别代表与前一个字符进行交换,不交换,与后一个字符进行交换。dp[i][j][1]=(s[i]=p[j])&(dp[i-1][j-1][0]|dp[i-1][j-1][1])考虑优化, 用bitset表示第一维,用滚动数组表示第二维

禅境花园 543

SWIFT报文实战指南:从MT700到MT799的信用证操作全解析

本文深入解析了国际贸易中信用证操作的核心SWIFT报文流程,从开证的MT700到各类通知、修改及结算报文(如MT707、MT730、MT754、MT732/734等)。通过实战案例与关键字段拆解,指导外贸与银行从业者精准处理报文,规避风险,并探讨了利用自动化工具提升处理效率的方法,助力保障跨境交易顺畅。

weixin_29015801的博客 880

保姆级教程:在STM32H750VBT6上跑起来CMSIS-DSP库(基于CubeMX+Keil)

本文详细介绍了在STM32H750VBT6微控制器上配置和运行CMSIS-DSP库的全过程,包括开发环境搭建、CubeMX工程配置、Keil工程设置以及DSP库的实际应用示例。通过FFT频谱分析和音频均衡器等实战案例,展示了如何利用STM32H750VBT6的硬件FPU加速DSP运算,提升实时信号处理性能。

weixin_30236595的博客 458

hdu5745 La Vie en rose dp+bitset优化

多校联合第12题 贴一个官方题解 http://bestcoder.hdu.edu.cn/blog/2016-multi-university-training-contest-2-solutions-by-zimpha/ 题解的DP很容易理解,然后用bitset把i优化掉,也就是现在dp[j][k]存的是一个100000位的二进制值,第i位为1就代表官方题解中的dp[i][j][k]=tru

哔哔~哔哔哔哔~ 490

从 0 到 1 打造一个“超级 IP 智能体”

这篇文章介绍了一个"超级IP智能体"的技术架构和实现方案。该项目构建了一个多模态内容生成流水线,主要流程包括:1)视频下载和音频提取;2)语音识别转换为文字稿;3)使用大语言模型对文案进行仿写和润色;4)语音合成;5)数字人口型同步;6)视频后期处理。文章详细介绍了如何使用Python和Hugging Face开源模型搭建环境,并重点展示了视频下载、语音识别(采用Whisper模型)以及文案仿写(使用Qwen1.5-7B-Chat模型)等核心模块的代码实现。所有处理均针对M3芯片Mac优

AI天才研究院 1149

hdu 5745 La Vie en rose(bitset优化dp)

题目链接去年多校赛的一道题目,今天下午拿来训练的时候做的,刚开始题意卡了半天,根本没有看懂,后来才发现那个下标的大小决定了我们题目理解的是否正确== 总之大意就是,有一串长字符s,短字符p,p中相邻的字母可以进行交换但不能重复交换,问以s的每个字符开头是否能匹配p或者p的变形。理解题意后发现这道题的思路还是相当简单的,就是一个很普通的dp,但是问题是数据规模,正常的dp时间复杂度为o(m*n),5

ciel_s的博客 603

openpi 入门教程(一)安装、训练、微调与推理

OpenPI是由物理智能团队发布的机器人开源模型和软件包,包含两种主要模型:基于流的扩散视觉-语言-动作模型(VLA)的π₀模型和基于FAST动作标记器的自回归VLA的π₀-FAST模型。这些模型已在超过10,000小时的机器人数据上进行了预训练,并提供了基础模型检查点,支持开箱即用或根据用户数据集进行微调。OpenPI的实验性质意味着它可能不适用于所有平台,但鼓励研究人员和从业者进行创造性实验。运行这些模型需要至少具备NVIDIA GPU,推荐使用RTX 4090或更高规格的显卡。OpenPI支持在Ubu

2506_90492529的博客 5109

统计学习导论(ISLR) 第四章分类算法课后习题

统计学习导论(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导论(ISLR)(二):统计学习概述 统计学习导论(ISLR)(三):线性回归 统计学习导论(ISLR)(四):分类 ISLR统计学习导论之R语言应用(二):R语言基础 ISLR统计学习导论之R语言应用(三):线性回归R语言代码实战 ISLR统计学习导论之R语言应用(四):分类算法R语言代码实战 统计学习导论

阿里云专家博主、数据科学领域优质创作者、统计er在读 2万+

HDU 5745 La Vie en rose(bitset优化dp)

事实上这题一开始没想到dp. 直接想的暴力,nm的. 后来无限t.. 然后搜题解,发现是改了数据和时限.只有用dp的方法,用bitset优化 (因为本来dp过程类似位运算,而bitset可以加速) 虽然过了,但是是看着题解过得,所以不能算数,代码后来补

blog 380

Android功耗系列专题理论之一:功耗优化分析思路简介

本文系统介绍了电子系统功耗分析方法,涵盖静态与动态功耗原理、电流波形分析技术和模块化拆解策略。重点阐述了PMIC与CPU协同管理机制、DVFS动态调节技术,以及通过示波器捕获波形特征定位异常的方法。针对亮屏等典型场景,提出三阶段对比分析法,并详细说明硬件/软件拆解方案及混合验证策略。文章还总结了常见问题模块(CPU、多媒体、外设)的排查流程,强调需结合日志分析、温度控制及重复测试确保数据可靠性,为功耗优化提供系统化解决方案。

1459

HDU 5745 La Vie en rose(DP+bitset优化)

[题目链接][题意] 给定模式串和主串,模式串可以交换相邻位子的字符,且可以交换多个位子,但每个字符只能被交换一次。问模式串能否通过该变换与主串匹配?输出主串中每个位子的匹配结果,1为可匹配,0为不可匹配。[分析] 赛上被这道题坑哭了,看到那么多队过自己却没有思路,好不容易想到个方法把样例过了却T了。最后走投无路写了个暴力就A了,1500ms,吓死。 不过赛后貌似加强了数据,卡了暴力,丧病。

MikeZHW的博客 629

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pscad IEEE标准系统搭建说明

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

hdu5745(字符串dp+bitset优化)

传送门 题意:交换相邻字符,用二进制表示匹配。 /* * @Author: biggf * @Date: 2018-07-04 19:38:55 * @Last Modified by: biggf * @Last Modified time: 2018-07-04 20:11:26 */ #include&lt;iostream&gt; #include&lt;cstring&g...

qq_35160381的博客 428

OV9734 DATASHEET,完整规格书

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

HDU 5745 La Vie en rose bitset优化dp

题目给出的变换规则其实就是交换相邻元素, 并且每个元素最多交换一次. 那么一个O(nm)O(nm)的dp其实十分显然, dp_{i,j,k}dp​i,j,k​​表示匹配到ss的第ii个字符, pp的第jj个字符, jj这一位的当前状态是kk (0表示和前面交换, 1表示没有交换, 2表示和后面交换). 转移方程如下: dp_{i,j,0}=dp_{i-1,j-1,2} \ and\

MY Blog 428

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

字符串匹配dp+bitset,滚动数组优化——hdu5745(经典)

bitset的经典优化,即把可行性01数组的转移代价降低 bitset的适用情况,当内层状态只和外层状态的上一个状态相关,并且内层状态的相关距离是一个固定的数,可用bitset,换言之,能用滚动数组是能用bitset优化的前提 /* dp[i,j][0|1|2]表示p串的第i位,s串的第j位相匹配,pi和pi-1换,pi不换,pi和pi+1换的状态下是否能匹配 dp[i,j][0] =...

weixin_30838873的博客 103

hdu-5745 La Vie en rose bitset

http://acm.hdu.edu.cn/showproblem.php?pid=5745 第一次使用bitset这个东西,优点是可以常数优化,而此题优雅的bitset转移刚好可以卡过 转移方程是看的这篇博客, http://blog.youkuaiyun.com/u012015746/article/details/51992281 “ 首先得出一个 dp式子,dp[i][j][k]表示 A

jerans的博客 402

hdu 5745 La Vie en rose(dp + bitset优化)

  La Vie en rose   Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2156    Accepted Submission(s): 682     Problem Description Professor...

lxkyes的博客 314

HDU5745-La Vie en rose-字符串dp+bitset优化

这题现场的数据出水了,暴力就能搞过。 标解是拿bitset做,转移的时候用bitset优化过的操作(与或非移位)来搞,复杂度O(N*M/w) w是字长 第一份标程的思路很清晰,然而后来会T。 1 /*--------------------------------------------------------------------------------------*/ 2 ...

weixin_30915275的博客 111

hdu 5745La Vie en rose(dp+bitset优化)

题目链接 La Vie en rose Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3188 Accepted Submission(s): 888 Problem Description Professor Zhang would lik...

weixin_30871293的博客 141

dp+bitset优化______La Vie en rose( hdu 5745 2016多校第二场)

Problem Description Professor Zhang would like to solve the multiple pattern matching problem, but he only has only one pattern string p=p1p2...pm. So, he wants to generate as many as possible pa

YzlCoder的记事本 1222

hdu 5745 La Vie en rose(dp+bitset)

题目链接:hdu 5745 La Vie en rose 题意: 给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉(例如3和4交换,5和6交换 互不影响,但是2和3,3和4就不可以)。求a中每一个位置能不能匹配b或b变换得到的子串。 题解: 考虑dp,dp[i][j][k]表示a[i]和b[j]匹配,k为1表示j未做交换,k=0表示j和j-...

weixin_30755709的博客 137

hdu5745(dp+bitset)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5745 C++ bitset的用法:https://www.cnblogs.com/magisk/p/8809922.html 题目: 题意:给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉。求a中每一个位置能不能匹配b或b变换得到的子串。 思路...

weixin_30323631的博客 145

[HDU 5745] La Vie en rose (DP+bitset卡时)

HDU - 5745 给定两个字符串 AA,BB 每次可以将 BB串中相邻的两个字符位置交换 每个字符只能改变一次位置 问通过这样的方式,BB 能在 AA串的哪些位置成为 AA的子串 其中 |A|<=105|A|<=10^5,|B|<=5000|B|<=5000 据说 kmpkmp是不行的,据说暴力匹配跑得比谁都快 正解复杂度还是很科学的 首先得出一个 dpdp式子,

MisDeer's blog 1069

HDU5745 La Vie en rose

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5745 【题意】给定串s和串p。可以对p进行一定的操作,操作为选取p中不相连的k个位置,每个位置的字母与其后面的位置字母进行交换。对于s串,假如s的子串s'(i,i+1,.....i+|p|-1)(|p|为串p的长度)是p串经过操作(可以没有操作)获得的,那么位子i标记1,否则标记0.问所有位

dDarkdawn的博客 551
上一篇: 51Nod 1532 DP + bitset 优化
下一篇: HDU 5616 Jam's balance dp, bitset
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值