DP
文章平均质量分 65
动态规划
jpphy0
算法是存在的
展开
-
HDU 6957 Maximal submatrix(悬线法 || 优先队列 || 单调栈 )
目录问题分析代码问题HDU 6957 Maximal submatrix - https://acm.hdu.edu.cn/showproblem.php?pid=6957分析悬线法dp代码悬线法【2012MS】#include<bits/stdc++.h>using namespace std;#define MXN 2010int n, m, ans;int v[MXN][MXN], h[MXN][MXN], l[MXN][MXN], r[MXN][MX原创 2021-07-30 19:13:48 · 348 阅读 · 0 评论 -
HDU 5125 magic balls
magic ballshttp://acm.hdu.edu.cn/showproblem.php?pid=5125分析代码// hdu 5125 magic balls#include <bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3f#define MXN 1010int a[MXN], b[MXN];// dp[i][j]:消耗能量不超过i、长度为j的序列的最小尾元素值// len[i]:消耗能量不超过i的原创 2021-05-27 21:15:32 · 98 阅读 · 0 评论 -
最长递增子序列(LIS)
问题 - Longest Increasing Subsequence例题:Given an unsorted array of integers, find the length of longest increasing subsequence.Input: [6,3,4,5,7,1,2]Output: 4complexityO(n2)O(n^2)O(n2)O(n∗logn)O(n*\log{n})O(n∗logn)分析子问题设计如果考虑搬寝室的分析方法,根据问原创 2021-05-25 21:04:13 · 200 阅读 · 0 评论 -
HDU 1025 Constructing Roads In JGShining‘s Kingdom
Constructing Roads In JGShining’s Kingdomhttp://acm.hdu.edu.cn/showproblem.php?pid=1025分析最长上升子序列O(nlogn)代码// hdu 1025 Constructing Roads In JGShining's Kingdom#include <bits/stdc++.h>using namespace std;#define MXN 500010#define fmt "Case原创 2021-05-24 15:23:29 · 109 阅读 · 0 评论 -
HDU 1058 Humble Numbers
Humble Numbershttp://acm.hdu.edu.cn/showproblem.php?pid=1058分析数与质因式一一对应,不同的数的质因式不同,不同的质因式得到不同的数按照素数的线性筛的思想,得到因数为2、3、5、7的不大于20 0000 0000的所有数,然后排序代码// hdu 1058 Humble Numbers#include<bits/stdc++.h>using namespace std;#define MAX_N 6000#defi原创 2021-05-23 11:01:18 · 116 阅读 · 0 评论 -
HDU 1160 FatMouse‘s Speed
链接FatMouse’s Speed - http://acm.hdu.edu.cn/showproblem.php?pid=1160分析LIS动态规划寻找“越胖越慢”证据,即寻找最长链速度降序,体重升序的最长链;每个长度的链保存一条,当链的最后一个重量变化时,复制前一个长度的链代码/* hdu 1160 FatMouse's Speed */#include <bits/stdc++.h>using namespace std;#define MXN 1010in原创 2021-05-21 08:58:17 · 193 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!
链接Super Jumping! Jumping! Jumping! - http://acm.hdu.edu.cn/showproblem.php?pid=1087分析LIS离散化动态规划代码/* hdu 1087 Super Jumping! Jumping! Jumping! */#include <bits/stdc++.h>using namespace std;#define MXN 1010int n, dp[MXN], ans;struct node{原创 2021-05-20 20:19:46 · 110 阅读 · 0 评论 -
HDU 1950 Bridging signals(LIS)
链接Bridging signals - http://acm.hdu.edu.cn/showproblem.php?pid=1950分析本质:最长递增子序列(LIS)求解策略按长度分类,尾元素最小最优动态规划,O(n2)尾元素数组法,O(nlogn)初始时刻,dp[1] = s[1],表示长度为1的递增子序列当前最优情况是尾元素为s[1];接下去用s[i]去更新各长度的最优尾元素,但每次至多能更新一个长度的尾元素;尾元素是增序排列,故可用lower_bound查找。按原创 2021-05-20 17:31:32 · 136 阅读 · 0 评论 -
HDU 1176 免费馅饼
链接免费馅饼 - http://acm.hdu.edu.cn/showproblem.php?pid=1176分析模型 - 横轴为位置,纵轴为时间;初始位置为红色,馅饼分布在网格中。图中蓝色的馅饼接不到虚线范围内的都能接到状态及分类设向右移动为1,向左移动为-1,不动为0,则 {…,1,…,−1,…,0,…⏞T个}\{\overbrace{…,1,…,-1,…,0,…}^{T个}\}{…,1,…,−1,…,0,…T个}为T秒末的状态(T, X)表示T秒末在X位置上,这表示原创 2021-05-20 07:57:33 · 554 阅读 · 3 评论 -
HDU 2084 数塔
链接数塔 - http://acm.hdu.edu.cn/showproblem.php?pid=2084分析自顶而下 —— 总共有2n2^n2n条路径。因为每一条路径都会一分为二,且初始时刻有1条路径。#mermaid-svg-HC9zsVO4ZBzA6cI6 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermai原创 2021-05-18 21:10:53 · 221 阅读 · 3 评论 -
HDU 1421 搬寝室(贪心 + 动态规划)
题目搬寝室 - http://acm.hdu.edu.cn/showproblem.php?pid=1421分析引导 在2 5 9 76 8 56 19 24 34 6共10个数中任选6个数分成3组,例如:(2, 8)、 (6, 24)、(56, 19) ,有无使得3组数据的差的平方和更小的方案?2 5 6 8 9 19 24 34 56 762原创 2021-05-05 14:27:25 · 813 阅读 · 0 评论 -
hdu 1257 最少拦截系统(动态规划 || 构造法-贪心 || 线段树)
最少拦截系统 - http://acm.hdu.edu.cn/showproblem.php?pid=1257分析所有升序链最长升序链的长度为k,则至少需要k个拦截系统,否则会至少存在1个拦截系统拦截了这个最长升序链中至少2个元素,不符题意可以构造出k个非升序链,具体构造方法是:每次用所有升序链的头元素构造一个非升序链(即:反链);k次构造后剩余集合为空集。问题转化为:最长升序链的长度代码动态规划在这里插入代码片...原创 2021-05-04 10:45:10 · 510 阅读 · 2 评论