摘要:
因为一开始给出的是中序遍历 所以这其实是一道区间dp。。。 dp的同时记一下每个点的儿子就可以完成第二问 #include<iostream> #include<cstdio> using namespace std; int a[32],n,f[32][32],crf[32][32]; long 阅读全文
摘要:
dp[i]表示1~i最大效率 记一下前缀和 转移就是f[i]=max(f[i],f[j-1]-sum[j])+sum[i] (i-k<=j<=i) 发现括号里的只与j有关 开一个单调队列维护一下 阅读全文
摘要:
惊了呀 Splay Treap 这都什么玩意 两个优先队列搞定 #include <bits/stdc++.h> using namespace std; #define LL long long typedef pair<int,int> pii; const int inf = 0x3f3f3f 阅读全文
摘要:
背包问题加强版orz #include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; long long a[500][500],f[500],n,m,a1[500],b1[500] 阅读全文
摘要:
dp[i][j]表示走i分钟疲劳值为j时的最远距离 然后搞一下就好啦 #include <iostream> #include <cstdio> #include <algorithm> #include <cstdlib> #include <cstring> #include <cmath> # 阅读全文