随笔分类 -  算法基础:贪心

摘要:问题描述 所谓“马踏棋盘”问题,就是指在中国象棋的棋盘上,用马的走法走遍整个棋盘,在8*8的方格中,每个格都要遍历,且只能遍历一次。 问题解析 从起始点开始,根据“马”的走法,它的下一步的可选择数是有0—8个的。 我们知道,当下一步的可选择数为0的时候,进行回溯。当下一步的可选择数有1个的时候,我们 阅读全文
posted @ 2021-04-10 00:11 RioTian 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:1、什么是反悔贪心? 贪心本身是没有反悔操作的,贪心求的就是当前的最优解。但当前的最优解有可能是局部最优解,而不是全局最优解,这时候就要进行反悔操作。 另外的来自蒟蒻dalao的解释: 众所周知,正常的贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法 阅读全文
posted @ 2021-03-10 18:48 RioTian 阅读(9940) 评论(1) 推荐(3) 编辑
摘要:http://poj.org/problem?id=1456 题意:给你 N 件不同的商品,每件商品最多可以买一次。每件物品对应两个值 pi di pi 表示物品的价值,di 表示可以买的最迟时间(也就是第一天到第 di 天都可以买这件物品) 规定:每天最多可以买一件物品,问你可以得到的最大价值。 阅读全文
posted @ 2020-08-01 16:53 RioTian 阅读(126) 评论(0) 推荐(1) 编辑
摘要:51node 上的一道题目 01 串[1] 给定一个 01 串 S,求出它的一个尽可能长的子串 S[i..j],满足存在一个位置 i<=x <j, S[i..x]中 0 比 1 多,而 S[x + 1..j]中 1 比 0 多。求满足条件的最长子串长度。 输入 一行包含一个只由 0 和 1 构成的字 阅读全文
posted @ 2020-07-14 19:46 RioTian 阅读(581) 评论(0) 推荐(1) 编辑
摘要:题目大意: 见《挑战程序设计竞赛》P74。 我的理解: 优先队列+贪心 注意把输入的距离(加油站到终点)改为起点到加油站。 因为求得是最优解,需要尽可能少的加油站,所以我们每次希望去加油的时候 加最大的那个,因而将加油站push进priority_queue(堆结构,默认每次弹出最大值) 在到达加油 阅读全文
posted @ 2020-06-09 16:31 RioTian 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 为 阅读全文
posted @ 2020-05-21 16:47 RioTian 阅读(349) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 阅读全文
posted @ 2020-05-04 07:14 RioTian 阅读(176) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示