
DP
lbz8o8
这个作者很懒,什么都没留下…
展开
-
VIJOS-P1091 环城旅行
https://vijos.org/p/1091 题解: 一个环,环上的边为行驶这段路所需的油,每个点权为这个点能够给汽车补充的油的数量。问从哪些点能够顺利的跑完一圈。油正好保证跑完全程。 首先是环的问题,通常解决环的问题都使用空间倍增的方法!即复制一份同样的数组,把两个数组连接起来。 预处理a[i]=j,表示从1号点出发到达i点油箱内透支的油的量(其实就是(-1)*油箱内油的量)。a[n+原创 2016-09-09 15:36:12 · 363 阅读 · 0 评论 -
poj 3709 K-Anonymous Sequence
http://poj.org/problem?id=3709第一道 斜率优化DP 优化前:#include<stdio.h>#include<string.h>int T;int n,k;int num[500005];int s[500005];int f[500005];int que[500005],le=1,ri=0;int min(int a,int b){return a原创 2016-09-12 16:27:15 · 334 阅读 · 0 评论 -
最长上升子序列 O(nlogn)
https://oj.jdfz.com.cn/oldoj/problem.php?id=21572157: Increasing Description 数列A1,A2,……,AN,修改最少的数字,使得数列严格单调递增。Input 第1 行,1 个整数N 第2 行,N 个整数A1,A2,……,ANOutput 1 个整数,表示最少修改的数字Sample Input 3 1 3 2Sam原创 2016-09-05 20:27:13 · 310 阅读 · 0 评论 -
拦截导弹(数据加强)
https://oj.jdfz.com.cn/oldoj/problem.php?id=1184终于会做了…… nlogn 最长不上升子序列、最长不下降子序列 注意细节!!!#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int n;int a[100005];int b[10000原创 2016-09-05 20:51:13 · 440 阅读 · 0 评论 -
VIJOS-P1369 难解的问题
https://vijos.org/p/1369预处理:将 k 前大于num[k]的删掉,将 k 后小于num[k]的删掉 然后 nlogn最长上升子序列#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int n,k;int num[300005];int b[300005],cnt;原创 2016-09-06 18:50:17 · 302 阅读 · 0 评论 -
Buy Low, Buy Lower 逢低吸纳
https://oj.jdfz.com.cn/oldoj/problem.php?id=1821题解:本题求最长下降子序列,然后求最长下降子序列的个数,并且不能重复。这就尴尬了…… 才发现,我竟然只会前一半…… 最近疯狂刷DP,还是有一些成效的,至少可以写出一个靠谱点的动态转移方程了,设g[i]代表当到第i个数时,长度最长的最长下降子序列个数。 得出 g[i]=sum(g[j])原创 2016-10-17 20:17:34 · 348 阅读 · 0 评论