当前位置: 首页 > article >正文

接龙数列 、 子串简写 与 砍树

[蓝桥杯 2023 省 B]接龙数列对于一个长度为 K 的整数数列A1​,A2​,…,AK​我们称之为接龙数列当且仅当 Ai​ 的首位数字恰好等于 Ai−1​ 的末位数字2≤i≤K。例如 12,23,35,56,61,11 是接龙数列12,23,34,56 不是接龙数列因为 56 的首位数字不等于 34 的末位数字。所有长度为 1 的整数数列都是接龙数列。现在给定一个长度为 N 的数列 A1​,A2​,…,AN​请你计算最少从中删除多少 个数可以使剩下的序列是接龙序列输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1​,A2​,…,AN​。输出格式一个整数代表答案。解容易想到本题可以使用 dp 解决。我们可以发现一个数字是什么并不重要重要的是头尾两个数字。我们可以先将每个数字的头尾记录下来记为 li​,ri​。接着设 dpi,j​ 表示到第 i 个数以 j 结尾的接龙数列的最大长度。当 li​ri−1​ 时意味着当前的数字可以和前一个数字接起来此时 dpi,ri​​max(dpi,ri​​,dpi−1,li​​)。否则 dpi,ri​​max(dpi,ri​​,dpi−1,ri​​)因为当前这个数无法做出更多贡献。#includebits/stdc.h using namespace std; const int N1e55; int n,dp[N][20]; struct Node{ int l,r; }a[N]; int main(){ cin n; if(n 1) cout 0 endl; else{ string s; for(int i 1;i n;i){ cin s; a[i].ls[0]-0; a[i].rs[s.length()-1]-0; } for(int i 1;i n;i){ dp[i][a[i].r] max(dp[i-1][a[i].r],dp[i-1][a[i].l] 1); for(int j 0;j 9;j){ if(j ! a[i].r) dp[i][j]dp[i-1][j]; } } int ans0; for(int i1;in;i){ for(int j0;j9;j) coutdp[i][j] ; cout endl; } for(int i0;i10;i) ansmax(ans,dp[n][i]); cout n-ans; } }简化直接在原dp上进行更新不再记录历史数据。#includebits/stdc.h using namespace std; const int N1e55; int n,dp[20]; struct Node{ int l,r; }a[N]; int main(){ cin n; for(int i 1;i n;i){ string s; cin s; a[i].l s[0] - 0; a[i].r s[s.length() - 1] - 0; dp[a[i].r] max(dp[a[i].r],dp[a[i].l] 1); // cout dp[a[i].r] endl; } // for(int j0;j9;j) cout dp[j] ; // cout endl; int ans 0; for(int j 0;j 9;j) ans max(dp[j],ans); cout n - ans; }[蓝桥杯 2023 省 B] 子串简写题目描述程序猿圈子里正在流行一种很新的简写方法对于一个字符串只保留首尾字符将首尾字符之间的所有字符用这部分的长度代替。例如internationalization简写成i18nKubernetes注意连字符不是字符串的一部分简写成K8sLanqiao简写成L5o等。在本题中我们规定长度大于等于 K 的字符串都可以采用这种简写方法(长度小于 K 的字符串不配使用这种简写)。给定一个字符串 S 和两个字符 c1​ 和 c2​请你计算 S 有多少个以 c1​ 开头 c2​ 结尾的子串可以采用这种简写输入格式第一行包含一个整数 K。第二行包含一个字符串 S 和两个字符 c1​ 和 c2​。输出格式一个整数代表答案。#includebits/stdc.h using namespace std; int main(){ long long k,cnt 0,ans 0; cin k; string s; char c1,c2; cin s c1 c2; int l 0,r k - 1; while(r s.length()){ if(s[l] c1) cnt ;//如果第一个指针所指向的字符是第一个字符那么计数器加一 if(s[r] c2) ans cnt;//如果第二个指针所指向的字符是第二个字符那么答案加上计数器的值 l,r;//两个指针每次加一 } cout ans; }[蓝桥杯 2023 省 B] 砍树题目描述给定一棵由 n 个结点组成的树以及 m 个不重复的无序数对 (a1​,b1​),(a2​,b2​),…,(am​,bm​)其中 ai​ 互不相同bi​ 互不相同ai​bj​(1≤i,j≤m)。小明想知道是否能够选择一条树上的边砍断使得对于每个 (ai​,bi​) 满足 ai​ 和 bi​ 不连通如果可以则输出应该断掉的边的编号 (编号按输入顺序从 1 开始)否则输出-1。输入格式输入共 nm 行第一行为两个正整数 n,m。后面 n−1 行每行两个正整数 xi​,yi​ 表示第 i 条边的两个端点。后面 m 行每行两个正整数 ai​,bi​。输出格式一行一个整数表示答案如有多个答案输出编号最大的一个。解给n个节点n-1行边m行目标对。以n个节点组成无向图G假设有2个目标对a, b 与 c, d。在图G中a到b的路径与c到d的路径会有重合要求找到一组边砍断后同时使ab、c d这两条路径都无法连接也就是重合路径中编号大的一条。我采用的方法是dfs暴力深搜会超时只能通过3/10#includebits/stdc.h #define int long long using namespace std; const int N 1e5 10; typedef pairint,int pii; vectorint edge[N];//图 int n,m; int w[N];//每一个边的计数 mappii,int id;//存边的编号 /* 目标节点 当前节点 父节点前一个节点 */ bool dfs(int to, int now, int father) { if(now to) return true; for(int i 0; i edge[now].size(); i ) { int son edge[now][i]; if(son father) continue; if(dfs(to, son, now)) { int ID id[{now,son}]; w[ID] ;//计数加一 return true; } } return false; } void solve() { cin n m; for(int i 0;i n-1;i ) { int x, y; cin x y; edge[x].push_back(y);//记录路径 edge[y].push_back(x); id[{x,y}] id[{y,x}] i;//记录边号 } for(int i 0;i m;i )//记录目标起点终点 { int x, y; cin x y; dfs(y, x, -1);//dfs深搜 } int ans -1; for(int i n - 1;i 0;i --)//从大到小枚举输出编号最大的一个边 { if(w[i] m) { ans i 1; break; } } cout ans endl; } signed main() { solve(); }

相关文章:

接龙数列 、 子串简写 与 砍树

[蓝桥杯 2023 省 B]接龙数列 对于一个长度为 K 的整数数列:A1​,A2​,…,AK​,我们称之为接龙数列当且仅当 Ai​ 的首位数字恰好等于 Ai−1​ 的末位数字(2≤i≤K)。例如 12,23,35,56,61,11 是接龙数列;12,23,34,56 不…...

LangChain开发-执行器深入解析:协调模型、工具与记忆的运行时

一、AgentExecutor的角色 1.1 什么是AgentExecutor? AgentExecutor是Agent的运行时环境,负责: ┌─────────────────────────────────────────────┐ │ AgentExecutor 职责 …...

公交刷卡数据挖掘用户通勤时间

3.13给定一组 公交卡的刷卡数据记录,每条数据记录以下信息a.user_idb.station_idc.type: 上车or下车or进站or出站d.timestamp表示该次刷卡的时间问题:使用以上数据,如何挖掘用户的上班时间和下班时间?...

中专机电专业最实用的证书是什么?

前段时间和几位在制造企业工作的朋友聊天,他们提到一个现象:现在的工厂车间里,自动化设备越来越多,数控机床、工业机器人、智能生产线逐步普及。但真正能把这些设备用好、能处理设备产生的大量数据的人才,却不太好找。…...

智能科学与技术毕业设计2026开题指导

1 引言 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应用需求&#xff…...

分心走神的儿童注意力缺陷是什么?影响因素和应对策略有哪些?

儿童注意力缺陷的概念与特征详解 儿童注意力缺陷,通常被称为ADHD(注意力缺陷多动障碍),是一种影响儿童学习和日常生活的常见神经发育障碍。ADHD的主要特征包括持续的注意力不集中、冲动行为和过度活动。这些症状不仅会妨碍孩子在学…...

拒绝Python依赖!SpringBoot 3 + ONNX Runtime 打造纯Java版YOLOv8通用检测服务:从模型转换到高并发API封装的全链路实战

前言 “部署个AI模型,还得在服务器上装Python环境、配Conda、解决各种pip依赖冲突?” “Java后端调用Python脚本,进程间通信(IPC)慢如蜗牛,高并发下线程池直接爆满?” “运维同事抱怨&#xff1…...

Scholar-Agent:你的全自动文献调研工具

全网自动“捞”论文:你不再需要手动在 arXiv、谷歌学术和本地 Zotero 之间切换。它会自动理解你的意图,同步从云端(最新论文)和本地(你收藏过的论文)进行海量搜索。 告别“论文标题党”:避免大…...

探索 BP 神经网络 PID 控制在 Simulink 中的仿真之旅

bppid BP神经网络 PID控制 simulink仿真 基于S函数.m文件的BP神经网络 可以运行出结果,有说明文档跟对应文章,包括一篇基于bppid的无刷直流电机控制的本科论文,很容易看懂。 描述真实。在控制领域,BP 神经网络与 PID 控制的结合总…...

Python-flask基于微信小程序的学生运动打卡交流系统的设计与实现

目录项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作项目技术支持 前端开发框架:vue.js 数据库 mysql 版本不限 数据库工具:Navicat/SQLyog/ MySQL Workbench等都可以 后端语言框架支持&am…...

算法入门(一):什么是算法?

# 算法入门(一):什么是算法?## 什么是算法?算法就是**解决问题的方法**,就像做菜的菜谱。## 算法的重要性- 💼 **面试必考** - 大厂面试手撕代码- 🧠 **锻炼思维** - 解决问题更高效…...

2026年10款热门降AI率工具全测评,轻松搞定论文降AI难题(持续更新)

2026年10款热门降AI率工具全测评,轻松搞定论文降AI难题(持续更新) 学弟学妹们先别慌!是不是刚用AI写完论文,兴冲冲去查AIGC率,结果直接飙到90%?导师还在催稿,心态瞬间崩了有没有&…...

怎么把claude code的claude模型的url和key永久设置成自己的

每次打开终端都要手动输入 export 确实非常繁琐。要让这些配置永久生效,你需要将 export 命令写入到你电脑终端(Shell)的默认配置文件中。这样,每次打开新的终端窗口时,系统都会自动为你加载这些变量。 以下是针对 mac…...

Simpack轨道之波磨不平顺设置那些事儿

simpack轨道,波磨不平顺设置,不提供教程。最近在研究Simpack轨道相关的内容,其中波磨不平顺设置这块还挺有意思的,今天就来跟大家聊聊。 波磨不平顺对轨道系统的影响 在轨道交通领域,波磨不平顺可不是个小问题。简单来…...

【2025最新】基于SpringBoot+Vue的扶贫助农系统管理系统源码+MyBatis+MySQL

系统架构设计### 摘要 在乡村振兴战略的推动下,扶贫助农工作成为社会关注的焦点。传统的扶贫管理方式存在信息不透明、效率低下等问题,亟需通过信息化手段提升管理效率和服务质量。扶贫助农系统通过整合资源、优化流程,实现帮扶信息的精准传递…...

从零到一:我设计了一个抗量子计算的哈希函数 REV-512

引言 你有没有想过,如果量子计算机真的问世,现在保护我们网络安全的密码算法会不会瞬间失效? 这不是科幻电影的情节。Grover算法可以将SHA-256的原像攻击复杂度从2⁵⁶降至2⁸——虽然今天这仍是天文数字,但量子计算的进步正在不…...

SourceTree 推送后修改commit message

目录一. 情景说明二. 修改最后一次commit时的message三. 修改指定提交的commit message一. 情景说明 🔷如下图所示,在自己的分支上将代码推送到远程仓库之后,发现代码commit时写的注释不对,需要修改。 💥注意&#xf…...

【Win11】受不了Win11右键菜单老是要多点一下?一招变回Win10经典样式

前言 刚换Win11的朋友,最烦的是不是右键菜单?以前在Win10上右键一下啥都能看到,现在要点“显示更多选项”才能找到想要的(比如解压缩文件),多了一步操作,每天要烦几十次。 其实改回Win10的经典…...

三相整流器在不平衡工况下抑制直流侧二倍频波动控制及SVPWM应用

三相整流器 不平衡工况 抑制直流侧二倍频波动控制SVPWM 参数: 直流侧电压 750V 交流侧电压 220V 开关频率20kHz 在三相电网不平衡的工况下,稳定输出750V直流电压,且抑制二倍频波动,能实现单位功率因数控制。 波形质量好,可以自行修…...

【笔试真题】- 京东-2026.03.14-第二套

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 京东-2026.03.14-第二套 第二套比第一套更像标准机考。第一题是带两种资源约束的选择型动态规划,重点在于“先保证件数最多,再在这些方案里取油耗最小”;第二…...

【花雕动手做】BLDC 40V200W有霍尔三相无刷电机驱动板马达控制调速 串口通信

这是一款专为中小功率无刷电机设计的有感 BLDC 驱动板,支持最高40V 电压、200W 功率输出,采用三相桥式驱动 霍尔位置反馈,可实现平稳启动、精准调速与正反转控制,并支持串口通信远程调节,是智能小车、机器人底盘、小型…...

书匠策AI:学术写作的“智能导航仪”,期刊论文轻松启航!

在浩瀚的学术海洋中,每一位研究者都是勇敢的航海者,而论文则是他们探索未知、分享发现的航行日志。然而,撰写一篇高质量的期刊论文,往往需要穿越选题迷雾、文献丛林、结构迷宫和表达险滩。幸运的是,随着人工智能技术的…...

2026论文降重工具实测红黑榜:谁才是真正的“过稿神器”?(附排名)

2026论文降重工具实测红黑榜:谁才是真正的“过稿神器”?(附排名) 要解决“哪个论文降重工具最好用”的问题,不能光看广告,必须结合2025-2026年最新的实测数据、高校毕业生的真实口碑以及工具的核心功能。 我…...

Python-flask微信小程序的连锁餐饮店在线点餐系统

目录需求分析技术选型数据库设计接口设计示例微信集成部署与优化测试与上线注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析 明确系统核心功能模块:用户端(小程…...

石墨烯材料计算与COMSOL光子晶体超表面模拟探索

石墨烯材料的计算 COMSOL光子晶体超表面模拟在材料科学与光学领域,石墨烯材料的计算以及COMSOL光子晶体超表面模拟正逐渐成为研究热点。今天咱们就来唠唠这俩有意思的事儿。 石墨烯材料的计算 石墨烯,这可是个神奇的二维材料,它具有独特的电学…...

基于人脸识别和 MySQL 的考勤管理系统实现

在现代企业和机构中,考勤管理系统是日常运营中不可或缺的一部分。传统的考勤方式(如打卡、指纹识别等)有时会因为各种原因导致管理效率低下或员工作弊。然而,随着人脸识别技术的飞速发展,基于人脸识别的考勤管理系统正…...

JDK 安装和环境配置保姆级教程

哈喽,各位刚入门Java的小伙伴!是不是被“JDK安装”“环境配置”这两个词整懵了?明明跟着网上的教程操作,却还是出现“javac不是内部或外部命令”“版本不匹配”的报错?别慌!今天这篇保姆级教程,从JDK版本选择、下载、安装,到Windows/Mac/Linux三大系统的环境配置,再到…...

山东大学项目实训一---基于RAG与大语言模型的智能法律合同审查系统——法眼审查 开题

项目背景: 当今人们在社会生活中会面临各种合同的签署,特别是各种公司,机构所签的劳动合同,在这个过程中,不少人深受其害,阴阳合同等问题层出不穷,而普通人缺少法律意识,并很难支付…...

《全球芯片图鉴》01|Intel

我决定开始写一个长期系列——“全球芯片图鉴”。STM32、ESP32、骁龙、英特尔CPU、NVIDIA GPU……很少有人会停下来想一想:这些芯片是如何诞生的?它们背后的公司经历了怎样的发展?同一个系列为什么会衍生出那么多型号?不同芯片又分…...

智驾的“眼睛”之争:再议激光雷达的价值——从小鹏袁婷婷两篇文章引发的思考

引言:一场关于“安全感”的行业大讨论 2025年的初夏,中国智能驾驶领域再次掀起了一场关于技术路线的深刻讨论。5月8日和5月16日,小鹏汽车自动驾驶产品高级总监袁婷婷老师先后发表了《小鹏的物理世界基座大模型,和行业现有的自动驾驶模型有什么区别?》及《关于模型参数、蒸…...