【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市
蓝桥杯备赛 | 洛谷做题打卡day13
文章目录
- 蓝桥杯备赛 | 洛谷做题打卡day13
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 提示
- 样例说明
- 数据规模与约定
- 思路:
- 方程:
- 题解代码
- 我的一些话
-
[USACO2006 OPEN] 县集市 The County Fair
题目描述
每年,FJ 都喜欢去参加县集市,集市上有 n n n 个展位,每个摊位 i i i 都会在当天的特定时间 p i p_i pi 发放精美的礼品。FJ 已经听说了这一点,他希望能收集尽可能多的礼品和他的奶牛们一起分享。要想获得摊位 i i i 发放的礼品,FJ 必须确保时间点 p i p_i pi 时位于摊位 i i i。
为了获得尽可能多的礼品,FJ 进行了一番详细的调查,通过调查FJ确定了从摊位 i i i 到摊位 j j j 所花费的时间 t i , j t_{i,j} ti,j。集市的布局很不寻常,这会导致,FJ如果在从 i i i 到 j j j 的过程中选择从其他摊位绕行,可能会比直接从 i i i 到 j j j 所花费的时间更少,然而我们耿直的 FJ 从来不这么做,如果他想从摊位 i i i 到摊位 j j j,他一定会花 t i , j t_{i,j} ti,j 的时间从 i i i 走到 j j j。另外由于集市所在地崎岖不平,所以 t i , j t_{i,j} ti,j 可能与 t j , i t_{j,i} tj,i 不相同。
FJ 在时间 0 0 0 时,位于 1 1 1 号摊位,请计算他最多可以收集多少奖品。
输入格式
第 1 1 1 行:一个整数 n n n,表示摊位的数量。
第 2 2 2 行:共 n n n 个整数,其中第 i + 1 i+1 i+1 的正数 p i p_i pi 表示摊位 i i i 发放礼品的时间。
第 n + 2 n+2 n+2 到第 n 2 + n + 1 n^2+n+1 n2+n+1 行:共 n 2 n^2 n2 行,第一个 n n n 行描述了 FJ 从摊位 1 1 1 走到到摊位 1 1 1… n n n 所需时间( t 1 , 1 , t 1 , 2 , . . . t 1 , n t_{1,1},t_{1,2}, ...t_{1,n} t1,1,t1,2,...t1,n),接下来的 n n n 行描述了 FJ 从摊位 2 2 2 走到摊位 1 1 1… n n n 所需时间( t 2 , 1 , t 2 , 2 , . . . t 2 , n t_{2,1},t_{2,2}, ...t_{2,n} t2,1,t2,2,...t2,n),以此类推,最后的 n n n 行描述了 FJ 从摊位 n n n 走到摊位 1 1 1… n n n 所需要的时间 t n , 1 , t n , 2 , . . . t n , n t_{n,1},t_{n,2}, ...t_{n,n} tn,1,tn,2,...tn,n。对于任意摊位 i i i, t i , i = 0 t_{i,i}=0 ti,i=0。
输出格式
一行:一个整数,表示 FJ 最多可以领取到的奖品数量。
样例 #1
样例输入 #1
4 13 9 19 3 0 10 20 3 4 0 11 2 1 15 0 12 5 5 13 0样例输出 #1
3提示
样例说明
样例中集市上共有 4 4 4 个摊位。 1 1 1 号摊位在时间 13 13 13 发放礼品, 2 2 2 号摊位在时间 9 9 9 发放礼品, 3 3 3 号摊位在时间 19 19 19 发放礼品, 4 4 4 号摊位在时间 3 3 3 发放礼品。
FJ 首先从 1 1 1 号摊位走到 4 4 4 号摊位,用时 3 3 3,并在时间 3 3 3 到达,正好可以领取到奖品,接着他从摊位 4 4 4 走到摊位 2 2 2 ,用时 5 5 5,并在时间 8 8 8 到达,在等待 1 1 1 个时间点后可以领取 2 2 2 号摊位的礼品,接着他从 2 2 2 号摊位走到 1 1 1 号摊位,用时 4 4 4,并在时间 13 13 13 到达,从而可以收集到第 3 3 3 个礼品。
数据规模与约定
对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 400 1\le n\le 400 1≤n≤400, 0 ≤ p i ≤ 1 0 9 0\le p_i\le 10^9 0≤pi≤109, 1 ≤ t i , j ≤ 1 0 6 1\le t_{i,j}\le 10^6 1≤ti,j≤106。
思路:
这道题目我们可以用动态规划做。我们先对时间顺序排序,时间小的在前面,因为只有先经过小的时间才可以推算大的时间。接着我们就有了一个数组,用来记录在前 *i* 个礼物中最多能拿几个礼物,且第 *i* 个礼物一定要取。当然这个要经过前面的推算才能得出。
方程:
我们需要通过前面的时间推算那么我们就可以做一个判断:如果前面那个礼物发放的时间加上那个集市到这个集市的时间小于等于这个礼物发放的时间,那么就可以从那个集市过来,之所以是要一定小于等于,是因为这个礼物必须要取。通过所有可以到达的集市,更新数组的最大值。

题解代码
学会利用新知,自己多试试并尝试积攒一些固定解答方案,debug,以下是题解代码 ~
#include <bits/stdc++.h>
using namespace std;
struct o//每一个集市的信息,下面的t和b分别是发放礼物的时间和集市的编号,记录编号是因为下面的排序有可能打乱编号
{int t;int b;
};
int p(o o1,o o2)//定义排序的优先级,发放礼物时间前的集市在前面
{return o1.t<o2.t;
}
int dp[401],ans;//把它们放在外面,自动清零
int main()
{o s[401];//定义所有的集市int n,t[401][401];//集市数量和走这两个集市的路的时间scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&s[i].t);s[i].b=i;}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&t[i][j]);sort(s+1,s+n+1,p);s[0].b=1,s[0].t=0;//赋初始值,在第0分钟,FJ在第一个集市for(int i=1;i<=n;i++)for(int j=0;j<i;j++)if(t[s[j].b][s[i].b]+s[j].t<=s[i].t)dp[i]=max(dp[j]+1,dp[i]),ans=max(ans,dp[i]);//通过方程更新最大值printf("%d",ans);return 0;
}
我的一些话
-
前几天一直在学习图论算法,今天看看动态规划算法初步吧,动态规划dp有一定难度,需要通盘的考虑和理解,以及扎实的数据结构基础才能独立写出AC代码。但无论难易,大家都要持续做题,保持题感喔!一起坚持(o´ω`o)
-
如果有非计算机专业的uu自学的话,关于数据结构的网课推荐看b站上青岛大学王卓老师的课,讲的很细致,有不懂都可以私信我喔
-
总结来说思路很重要,多想想,多在草稿纸上画画,用测试数据多调试,debug后成功编译并运行出正确结果真的会感到很幸福!
-
关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~
-
不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)
相关文章:
【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市
蓝桥杯备赛 | 洛谷做题打卡day13 文章目录 蓝桥杯备赛 | 洛谷做题打卡day13题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示样例说明数据规模与约定 思路:方程: 题解代码我的一些话 [USACO2006 OPEN] 县集市 The County Fair 题目描述 每年…...
C#,入门教程(30)——扎好程序的笼子,错误处理 try catch
上一篇: C#,入门教程(29)——修饰词静态(static)的用法详解https://blog.csdn.net/beijinghorn/article/details/124683349 程序员语录:凡程序必有错,凡有错未必改! 程序出错的原因千千万&…...
操作教程|JumpServer堡垒机结合Ansible进行批量系统初始化
运维人员常常需要对资产进行系统初始化的操作,而初始化服务器又是一项繁琐的工作,需要花费运维人员大量的时间和精力。为了提高效率,许多组织会使用自动化工具和脚本来简化这些任务。自动化工具的运用可以大幅降低运维人员的工作量࿰…...
序列化VS反序列化
序列化、反序列化定义 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。 序列化(Serialization)是指将对象转换为字节序列的过程,也可以称之为对象的持…...
新数智空间:阿里云边缘云持续保持中国公有云市场第一
全球领先的 IT 市场研究和咨询公司 IDC 发布 《中国边缘云市场解读(2023H1)》报告 中国边缘公有云服务市场 阿里云持续第一 稳居市场第一,“边缘”逆势生长 近日,全球领先的 IT 市场研究和咨询公司 IDC 最新发布《中国边缘云市…...
【开源】基于JAVA语言的陕西非物质文化遗产网站
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与过程2.3.1 系统设计2.3.2 查阅文献2.3.3 网站分析2.3.4 网站设计2.3.5 网站实现2.3.6 系统测试与效果分析 三、系统展示四、核心代码4.1 查询民间文学4.2 查询传统音乐4.3 增改传统舞…...
C++(Qt)软件调试---静态分析工具clang-tidy(18)
C(Qt)软件调试—静态分析工具clang-tidy(18) 文章目录 C(Qt)软件调试---静态分析工具clang-tidy(18)1、概述2、clang-tidy基本用法3、目前已有检查项4、Qt Creator中安装clang-tidy5、Qt Creator中使用clang-tidy6、Clang-Tidy配置…...
2401llvm,clang的重构引擎
Clang的重构引擎 展示如何使用重构API中的各种原语来实现不同的重构. LibTooling库提供了几个在开发重构操作时,使用的其他API. 可用重构引擎来实现,用编辑器或IDE中的选择启动的本地重构.可结合AST匹配器和重构引擎,以实现不适合源选择和/或必须查询某些指定节点的AST的重构…...
【C语言深度剖析——第四节(关键字4)】《C语言深度解剖》+蛋哥分析+个人理解
追求本质,不断进步 本文由睡觉待开机原创,转载请注明出处。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 这里写目录标题 一、空间的申请1.变量定义1.1变量定义的概念:1.2变…...
鸿蒙开发系列教程(五)--ArkTS语言:组件开发
1、基础组件 组件API文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/84_u58f0_u660e_u5f0f_u5f00_u53d1_u8303_u5f0f_uff09-0000001427744776-V2 查看组件API 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 容…...
Java:正则表达式讲解加举例,简洁易懂
正则表达式定义: 由一些特定的字符组成,代表的是一个规则。 作用:1.校验数据是否合法。2.可以在一段文本中查找满足要求的内容。 先自己写一个方法去校验qq号,比较与正则表达式的区别: 正则表达式的代码暂时可以不…...
2.机器学习-K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解
2️⃣机器学习-K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解 个人简介一算法概述二算法思想2.1 KNN的优缺点 三实例演示3.1电影分类3.2使用KNN算法预测 鸢(yuan)尾花 的种类3.3 预测年收入是否大于50K美元 个人简介 🏘️&…...
WordPress顶部管理工具栏怎么添加一二级自定义菜单?
默认情况下,WordPress前端和后台页面顶部都有一个“管理工具栏”,左侧一般就是站点名称、评论、新建,右侧就是您好,用户名称和头像。那么我们是否可以在这个管理工具栏中添加一些一二级自定义菜单呢? 其实,…...
Linux安装ossutil工具且在Jenkins中执行shell脚本下载文件
测试中遇到想通过Jenkins下载OSS桶上的文件,要先在linux上安装ossutil工具,记录安装过程如下: 一、下载安装ossutil,使用命令 1.下载:wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64 2.一定要赋权限…...
Docker命令---搜索镜像
介绍 使用docker命令搜索镜像。 命令 docker search 镜像命令:版本号示例 以搜索ElasticSearch镜像为例 docker search ElasticSearch...
docker使用http_proxy配置代理
钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。 在内网服务器中,docker经常需要下载拉取镜像,但由于没有网络要么只能手动导入镜像包,又或者通过http_proxy代理到其它服务器下载。 解决方法…...
综述:自动驾驶中的 4D 毫米波雷达
论文链接:《4D Millimeter-Wave Radar in Autonomous Driving: A Survey》 摘要 4D 毫米波 (mmWave) 雷达能够测量目标的距离、方位角、仰角和速度,引起了自动驾驶领域的极大兴趣。这归因于其在极端环境下的稳健性以及出色的速度和高度测量能力。 然而…...
蓝桥杯:1.特殊日期(Java)
题目描述 对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。 请问从1900年1月1日至9999年12月31日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。 例如&…...
服务异步通讯之 SpringAMQP【微服务】
文章目录 一、初识 MQ1. 同步通讯2. 异步通讯3. MQ 常见框架 二、RabbitMQ 入门1. 概述和安装2. 常见消息模型3. 基础模型练习 三、SpringAMQP1. 简单队列模型2. 工作队列模型3. 发布订阅模型3.1 Fanout Exchange3.2 Direct Exchange3.3 Topic Exchange 一、初识 MQ 1. 同步通…...
LED闪烁
这段代码是用于STM32F10x系列微控制器的程序,主要目的是初始化GPIOA的Pin 0并使其按照特定的模式进行闪烁。下面是对这段代码的逐行解释: #include "stm32f10x.h":这一行包含了STM32F10x系列微控制器的设备头文件。这个头文件包含…...
从入门到精通:wrk压力测试实战与性能调优全攻略
1. 为什么你需要wrk压力测试工具 第一次接触性能测试时,我像大多数开发者一样,用浏览器刷新页面来"感受"系统快慢。直到某次上线后服务器崩溃,才明白这种原始方法有多不靠谱。后来发现wrk这个工具,它彻底改变了我的性能…...
(最新版)GitGitHub实操图文详解教程(06)—git status命令
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 1. 应用场景 git status 是 Git 中最常用的命令之一,用于查看当前仓库的状态。它能够告诉你: 当前所在分支 哪些文件被修改但未暂存 哪些文件已暂存但尚未提交 哪些文件未被 Git 跟踪 对于初学…...
谷歌 5 月算法大更新|独立站必看
2026年5月11日至15日,Google完成了本月核心算法的全面推送。这场覆盖全球搜索生态的更新,没有冗长的预热,却在上线后迅速引发跨境SEO、独立站运营、内容创作者群体的剧烈震动。本次更新是Google继3月核心算法后,对搜索质量体系的又…...
FPGA新手必看:用Verilog手搓一个SPI Master控制器(Mode 0/3实战)
FPGA实战:从零构建SPI Master控制器的Verilog实现指南 1. 初识SPI协议与FPGA开发环境搭建 对于刚接触FPGA和数字电路设计的工程师来说,SPI(Serial Peripheral Interface)协议是一个理想的起点。这种同步串行通信协议广泛应用于传感…...
新手教程使用curl命令一分钟测试Taotoken的OpenAI兼容API
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手教程:使用curl命令一分钟测试Taotoken的OpenAI兼容API 本文面向刚获取Taotoken API Key的开发者,目标是…...
2026年DevSecOps工具选型推荐:如何构建安全高效的研运体系
在2026年,软件交付的速度与质量安全已成为企业核心竞争力的关键。DevSecOps作为将安全能力左移并贯穿软件开发生命周期(SDLC)的实践方法论,其成功落地高度依赖于一套功能强大、易于集成且团队愿意采纳的工具链。面对市场上纷繁复杂…...
给排水设计新人必看:如何用SWMM快速搭建一个‘麻雀虽小五脏俱全’的练习模型?
SWMM实战入门:从零构建微型排水系统的设计思维训练 刚接触市政给排水设计的职场新人,面对SWMM软件界面总有种"知道每个按钮功能,却不知从何下手"的困惑。这就像拿到一套精良的绘图工具,却不知道如何组合线条构成有意义的…...
从“上管掉电”到稳定驱动:手把手教你计算EG2104自举电容的容值与选型(附PWM占空比影响分析)
从“上管掉电”到稳定驱动:手把手教你计算EG2104自举电容的容值与选型(附PWM占空比影响分析) 在高压半桥驱动电路设计中,自举电容的选型往往成为工程师最易忽视却最关键的环节。EG2104作为一款经典的高低压侧驱动芯片,…...
IMX8QX MEK开发板烧录实战:手把手教你从官方BSP包到定制uuu脚本的全流程
IMX8QX MEK开发板烧录实战:从BSP解析到定制化uuu脚本全指南 拿到一块崭新的IMX8QX MEK开发板时,官方提供的BSP包往往像一座未经探索的金矿——资源丰富但路径复杂。本文将带你深入这座金矿,从文件定位到脚本定制,完成一次完整的烧…...
Stream Deck与Arduino打造物联网信息看板:软硬云结合实战
1. 项目概述:打造你的专属物理信息看板如果你和我一样,是个桌面极客或者直播爱好者,那你对Elgato的Stream Deck一定不陌生。这个小玩意儿最初是为直播设计的,可以一键切换场景、播放音效,堪称效率神器。但它的潜力远不…...
