线性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 · 114 阅读 · 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 · 206 阅读 · 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 · 347 阅读 · 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 · 2694 阅读 · 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 · 174 阅读 · 0 评论