
线性DP
不哭的超人
愿你孤独的努力终有回报,愿你前行的路上有人相伴。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GPA
GPA 解题思路:dp[i][j],表示对于前i个数有j个sad的最小和。保证是最小和,可以使sad的个数越少。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const double INF = 1e16; const int N = 1e4+1原创 2020-12-27 00:52:58 · 136 阅读 · 0 评论 -
Drop Voicing
Drop Voicing 题解:多次的Invert和多次的Drop一定是可以把某个数放在指定位置的。那么求出一个序列的最长升序子序列cnt,那么就需要执行n-(多次的Invert和多次的Drop)。因为Invert可以将第一个放在最后,那么就会有n个不同下表的序列,是一个循环。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int>P; const int inf原创 2020-08-01 10:40:49 · 257 阅读 · 1 评论 -
最少拦截系统(LIS)
题目:最少拦截系统 题解:LIS问题,求最长升序子序列。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 7e6+10; const int inf = 0x7FFFFFFF; int f[N]; int ans = 0; void solve(int x){ ...原创 2020-01-27 19:08:16 · 385 阅读 · 0 评论 -
最长升序子序列
最长升序子序列 有两种算法,算法的时间复杂度分别是O(n^2)和O(nlogn) O(n^2) dp[i] 指从0~i的最大子升序 但此时的最大值并不一定时最长升序子序列 #include <stdio.h> #include <iostream> using namespace std; int a[100005]; int dp[100005]; int m...原创 2019-04-22 13:01:15 · 2763 阅读 · 0 评论 -
FatMouse's Speed(LIS+路径记录)
题目:FatMouse’s Speed 题解:采用O(n^2)的LIS算法,用path记录路径 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int>P; const int N = 1e5+10; const int inf = 0x7FFFFFFF;...原创 2020-01-28 13:57:21 · 207 阅读 · 0 评论