
动态规划(DP)
文章平均质量分 83
KuB特洛夫斯基
该用户涉嫌装B,已被平台举报!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【JAVA】求数列中相邻两数间不存在比两数大的情况数(Pro20211203)(IndexTree / DP)
【JAVA】求数列中相邻两数间不存在比两数大的情况数(Pro20211203)(IndexTree / DP)题目解题思路代码(IndexTree)代码(DP)题目身高各异的 N 个人按一定间隔站成一排,每个人都按照以下规则来监控他们能看到的人是否在做其他的事。规则:我和我要监控到的第 i 个人之间不能有人比我高,也不能有人比第 i 个人高。例如,根据下 [图] 可知,⑤ 号可以监控到 ③ 号,但无法监控到 ① 号,因为 ③ 号比 ⑤ 号高。假设如上 [图] 所示,一共站着八个人。从左向右原创 2021-12-23 12:14:27 · 323 阅读 · 0 评论 -
【JAVA】无向连通图到达所有点必须经过固定点成本之和的最小值(Pro20210903)(Dijkstra + DP)
【JAVA】无向连通图到达所有点必须经过固定点成本之和的最小值(Pro20210903)(Dijkstra + DP)题目思路代码题目略思路每次到达下一个点必须经过1号店,可以拆解为从当前点到1号点的最短路径,加上从1号点到目的地的最短路径。也就是说,整个过程可以分解为:1号点到剩余所有点:在下面会包含,不用单独列举(计算)2号点到剩余所有点:【2 --> 1 --> 3 --> 1 --> 4 --> 1 --> 5… --> N-1 -->原创 2021-09-08 10:48:55 · 266 阅读 · 0 评论 -
【JAVA】最大间隔限定的最大和(Pro20210827)(DP(IndexTree / PriorityQueue)
【JAVA】最大间隔限定的最大和(Pro20210827)(DP(IndexTree / PriorityQueue)题目思路代码(IndexTree)代码(PriorityQueue)题目Lia 在一个景点看到了由 N 个垫脚石组成的石桥。单纯地走过这些垫脚石感觉没有意思,所以她给每块垫脚石设置了一个分数,将踩到的所有石头上的分数全部加起来,想要得到一个最大分数。但是,为了让这件事更有意思,她决定按下列规则来过桥。第一块和最后一块垫脚石必须要踩。设定一个K值,下一块踩的石头与上一块踩的石头间相原创 2021-08-31 16:06:08 · 175 阅读 · 0 评论 -
【JAVA】连通分量中的背包问题(Pro20210712)(BFS + DP)
【JAVA】连通分量中的背包问题(Pro20210712)(BFS + DP)题目思路代码题目S 公司的网络管理员琳收到了一通紧急来电。来电告知公司内部设备连接的网络中发现了恶意代码,必须马上采取相应措施。S 公司有 N 台设备,通过 M 根线路连接,所以如果其中一台设备感染恶意代码,其他设备也会通过连接网络感染上恶意代码。目前,已有 K 台设备感染恶意代码,代码扩散危机迫在眉睫。受感染的设备需要立即处理,但在目前的情况下,最多只能处理三台设备。保受感染的设备数量尽可能少的情况下,帮助琳确定要处理的原创 2021-08-03 11:40:42 · 179 阅读 · 0 评论 -
【JAVA】有关系数对中两侧均递增的最大对数Pro20210628 (最长递增子序列(LIS) / IndexTree / DP + 二分)
【JAVA】有关系数对中两侧均递增的最大对数Pro20210628题目哲珉常去的健身房进了一种新的健身器材。该器材是以两柱子竖立的形态,每个柱子上有N+1个把手,各把手都以从下到上的方向贴着0到N的编号。使用该器材进行锻炼时,需要用左手握住左侧柱子的0号把手,用右手握住右侧柱子的0号把手。然后,将双手向上移动到更高的把手来持续进行锻炼。该器材附有一张表,表上以成对的形式写着多个左右把手的编号。锻炼者只能同时握住表上写着的一对把手编号。即,若表上有(3, 4),那么可以同时握住左侧3号把手和右侧4号把原创 2021-07-21 16:12:51 · 224 阅读 · 1 评论 -
【JAVA】最长递增子序列(LIS)的不同解法(POJ 2533)(DP / IndexTree)
【JAVA】LIS的不同解法(POJ 2533)(待完善)方法1:DP(贪心 + 二分)方法2:IndexTree(原始数据的下标和Tree叶节点下标对应)方法3:IndexTree(原始数据的值和Tree叶节点下标对应)方法4:BIT(原始数据的值和Tree叶节点下标对应)题目地址:http://poj.org/problem?id=2533方法1:DP(贪心 + 二分)思路:原始数组DATA[],用于存放原始数据。临时数组ARR[],用于存放局部最优解(注意:ARR数组中的元素,并不一定是原始原创 2021-07-06 16:38:30 · 314 阅读 · 0 评论 -
【JAVA】求飞机游戏中最小横向移动次数Pro20210719(DP / BFS(Dijkstra思想))
题目整个游戏地图由M个横向格子和N个纵向格子组成,地图上的格子有可能是空的,也可能有障碍物,我们需要在这个地图中进行滚动游戏。你能看到的游戏屏幕的横向和纵向大小都是M个格子。地图中,从顶部开始的M行不存在障碍物。游戏开始时,在屏幕上可以看到整个地图中最底部的M个纵向和横向格子,你的飞船位于屏幕左下方(即整个地图的左下方格子)的格子。你的飞船将一直位于游戏屏幕的末行,游戏中的每一步,地图都会向下滚动一行。换句话说,每进行一步,游戏屏幕中显示的地图都会向上移动一行。由于飞船一直位于屏幕末行,所以它在整个地原创 2021-07-28 13:51:02 · 243 阅读 · 0 评论