【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市

蓝桥杯备赛 | 洛谷做题打卡day13

文章目录

  • 蓝桥杯备赛 | 洛谷做题打卡day13
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
        • 样例说明
        • 数据规模与约定
      • 思路:
      • 方程:
    • 题解代码
    • 我的一些话


思路:

这道题目我们可以用动态规划做。我们先对时间顺序排序,时间小的在前面,因为只有先经过小的时间才可以推算大的时间。接着我们就有了一个数组,用来记录在前 *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后成功编译并运行出正确结果真的会感到很幸福!

  • 关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~

  • 不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/339343.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

说说你对归并排序的理解?如何实现?应用场景?

一、是什么 归并排序&#xff08;Merge Sort&#xff09;是建立归并操作上的一种有效&#xff0c;稳定的排序算法&#xff0c;该算法是采用分治法的一个非常典型的应用 将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff0c;即先使每个子序列有序&#xff0c;再使…

几个简单好用Python库,让你工作效率翻倍

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python是一门强大的编程语言&#xff0c;不仅可以进行软件开发&#xff0c;还可以通过各种优秀的第三方库来提高工作效率。本文将介绍几个简单而好用的Python库&#xff0c;它们可以帮助你在各种领域提高工作效率…

02不吉利日期,noi练习题,小学生编程

02:不吉利日期 总时间限制: 1000ms 内存限制: 65536kB 描述 在国外&#xff0c;每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时&#xff0c;更不吉利。已知某年的一月一日是星期w&#xff0c;并且这一年一定不是闰年&#xff0c;求出这一年所有13号…

设计模式—行为型模式之观察者模式

设计模式—行为型模式之观察者模式 观察者模式(Observer Pattern)&#xff1a;定义对象间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅&#xff08;Publish/Subscribe&#…

Qt应用开发(安卓篇)——Hello Qt On Android

一、前言 这一篇从实际出发&#xff0c;讲述如何创建、编译和部署Qt On Android项目。 二、ADB调试 ADB的全称为Android Debug Bridge&#xff0c;就是起到调试桥的作用&#xff0c;主要用于连接计算机与Android 设备&#xff0c;以便进行调试和数据传输。ADB 可以实现以下主要…

如何使用CRM实现销售流程自动化?CRM如何提高销售效率?

科技在当今时代扮演着重要的角色。在商业领域&#xff0c;我们用很多不同的软件来完成业务、提高效率。销售被认为是一个企业的灵魂。没有销售&#xff0c;企业很难生存。为了使销售更加有效&#xff0c;自动化是每个企业都应该采用的一个重要战略。实现销售过程自动化最简单的…

【视频媒体】深入了解直播视频流

深入了解直播视频流&#x1f3a5; YouTube、TikTok live和Twitch上的直播视频是如何工作的&#xff1f; 直播视频流与常规流媒体不同&#xff0c;因为视频内容通过互联网近乎实时发送&#xff0c;通常只有几秒钟的延迟。 下图解释了实现这一目标背后所发生的事情。 步骤1&…

【QT+QGIS跨平台编译】之四:【libSSH2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libSSH2介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、libSSH2介绍 libSSH2是一个开源的C函数库&#xff0c;用来实现SSH2协议。 SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。 SSH2避免了RSA的专利问题&#xff0c;并修补了CRC…

HR人才测评,招聘技术部经理的胜任力素质模型与任职资格

招聘技术部经理是企业招聘中的关键职位之一。为了确保招聘到胜任的人才&#xff0c;需要制定一个详细的胜任力素质模型和任职资格要求。下面将详细说明。 企业版团测 - 在线人才测评系统、人才测评工具、人才盘点、团队测评、心理测评、职业测评 - 在线工具网团测&#xff0c;…

Python爬虫--5

1、异步爬虫 异步爬虫的方式&#xff1a; &#xff08;1&#xff09;多线程&#xff0c;多进程&#xff08;不建议使用&#xff09; 好处&#xff1a;可以为相关阻塞的操作单独开启线程或者进程&#xff0c;阻塞操作就可以异步执行。 弊端&#xff1a;无法无限制的开启多线程…

3.php开发-个人博客项目输入输出类留言板访问IPUA头来源

目录 知识点 : 输入输出 配置环境时&#xff1a; 搜索框&#xff1a; 留言板&#xff1a; 留言板的显示&#xff08;html&#xff09;&#xff1a; php代码显示提交的留言&#xff1a; 写入数据库 对留言内容进行显示&#xff1a; php全局变量-$_SERVER 检测来源 墨…

1.11马原总复习PART2

社会一定发展阶段 &#xff0c;生产力&#xff0c;生产关系总和 一定经济基础之上的意识形态&#xff0c;制度、组织和设施 普遍联系的根本内容和变化发展的内在动力 唯物辩证法的实质和核心 贯穿其他规律的中心线索 提供了根本方法矛盾分析法 价值由社会必要劳动时间决定…

安装ddddocr中遇到的问题

1、需要先安装&#xff1a; pip3 install pyinstaller --no-use-pep517 pip install scikit-build pip install setuptools pip install pyinstaller pip install pillow 重要是的是保证一个python 环境&#xff0c;多个python环境会导致各种问题。并且保证python>3.8…

LTC2944库仑计(电量计)芯片应用笔记(Arduino,ESP32)

一、一些基础知识 1.蓄电池的容量单位 &#xff08;1&#xff09;毫安时mAH 蓄电池的容量一般会采用毫安时&#xff08;mAH&#xff09;为单位&#xff0c;比如2000mAH的蓄电池意思是该蓄电池理论上可以以2000mA的电流持续放电1小时&#xff0c;2000mA*1H2000mAH。当然这个是…

C++从小白到初级工程师【个人学习笔记】

目录 1.背景2.基础二维数组概念二维数组定义方式 二维数组数组名称概念例子 函数的分文件编写概念示例 指针指针的基本概念指针变量的定义和使用 空指针和野指针空指针实例野指针实例 const修饰指针概念const修饰指针 --- 常量指针 指针和数组作用示例 指针和函数作用示例 指针…

代码随想录 Leetcode150. 逆波兰表达式求值

题目&#xff1a; 代码(首刷看解析 2024年1月21日&#xff09;&#xff1a; class Solution { public:int evalRPN(vector<string>& tokens) {stack<long long> st; for (int i 0; i < tokens.size(); i) {if (tokens[i] "" || tokens[i] &qu…

雍禾医疗获“年度医疗大健康消费企业”奖项 雍禾植发品牌深入人心

不久前&#xff0c;在钛媒体2023 T-EDGE全球创新大会上&#xff0c;钛媒体重磅发布了2023 EDGE AWARDS全球创新评选榜单。希望一起透过这些推动行业变革的公司、个人和产品&#xff0c;全面展现2023的产业格局。 “植发第一股”雍禾医疗荣获“年度医疗大健康消费企业”奖项。雍…

Unity 编辑器篇|(十二)自定义编辑器窗体(EditorWindow,ScriptableWizard) (全面总结 | 建议收藏)

目录 1. 前言2. 创建自定义窗体&#xff1a;EditorWindow2.1 参数总览2.2 EditorWindow的生命周期2.3 区别&#xff1a;CreateWindow()&#xff0c;GetWindow() &#xff0c;GetWindowWithRect()2.4 代码示例 3. 创建对话框窗体&#xff1a;ScriptableWizard3.1 参数总览3.2 区…

Java并发基础:Executor接口和Executors类的区别

Executor是Java中的一个接口&#xff0c;它定义了一种将任务提交与任务执行机制&#xff08;包括线程管理、调度等&#xff09;分离的方式&#xff0c;Executors是一个工具类&#xff0c;它提供了多个静态工厂方法&#xff0c;用于创建不同类型的Executor实例。 代码案例 下面…

Camera基础原理与畸变补偿

Camera基础原理与畸变补偿 Camera知识大盘点 Camera的构成看起来并不复杂&#xff0c;核心是镜头感光芯片&#xff0c;以及其它辅助部件。但大家也都知道光学成像是一门非常深奥且尖端的科学&#xff0c;这其中消费者可以拿来讨论的话题非常之多。现在就来谈谈摄像头&#xf…