dp
THE___BEST
这个作者很懒,什么都没留下…
展开
-
UVa 437. The Tower of Babylon
把所有的正方体形态全求一遍,然后就是裸DAG了 #include #include #include #include #include #include using namespace std; const int INF = 0x7fffffff; const int maxn = 300; struct node { int c, k, g; void sc(i原创 2015-09-20 22:25:49 · 381 阅读 · 0 评论 -
1330 - City Game
好题,但是刘汝佳老师的思路更叼! #include #include #include #include using namespace std; const int maxn = 1000 + 7; int mat[maxn][maxn], up[maxn][maxn], left[maxn][maxn], right[maxn][maxn]; int T, m, n; int ma原创 2016-01-25 15:15:00 · 345 阅读 · 0 评论 -
10534 - Wavio Sequence
前后都来一遍最长上升子序列。注意要用nlogn复杂度的算法 #include #include #include #include #include using namespace std; const int maxn = 10000 + 5; const int INF = ~0U >> 1; int a[maxn], dp1[maxn], dp2[maxn]; int d[max原创 2016-02-15 09:51:25 · 401 阅读 · 0 评论 -
nlogn 最长上升子序列
#include #include #include #include #include using namespace std; const int maxn = 500; const int INF = ~0U >> 1; int a[maxn], d[maxn]; /// a原数据 d[i] 表示长度为i的上升子序列里面最大的那个数 int n; int main() {原创 2016-02-04 17:38:52 · 354 阅读 · 0 评论 -
HDU 4081 次小生成树模板题
先求最小生成树,然后对于最小生成树这个图中的所有点对,求出任意两点之间的所有路径上的最大边,注意是对于构造出来的最小生成树这个图来说。 然后枚举删每一条边,求最优解。 #include #include #include #include #include #include #include using namespace std; const int maxn = 10原创 2016-04-08 21:18:37 · 421 阅读 · 0 评论