-
- solution
离线之后,将原本的d中bool值改为能凑出它的最小代价。
- solution
-
- solution
lrj书上的dp例题。
按高度从高到低决策,不妨设三层书的高度递减,那么每层的高度由第一本放入的书决定,那么新放入的书要么新开辟一层,同时贡献宽度和高度,那么放入当前层,只贡献宽度。
将宽度表示在状态里,高度作为最小化的dp值。 - notice
实际上不用取(2100 imes 2100),(1065 * 720)就够了。
注意三层书柜都得放书。
- solution
-
- description
在基环外向树上求一个最长路。 - solution
一个单调队列就行了对吧,然而原题实际上很难写的样子。现在还没AC。。
- description
-
NOI2012 迷失的游乐园
还没看,留坑。 -
圆圈游戏
T2 -
- solution
五个点的连通状态只有52种可能,用最小表示法+矩阵乘法即可通过所有的测试数据。 - notice
在从最小表示法得到当前的并查集时,一时脑抽写成了
- solution
vector<int> new_state(vector<int> a, int s) {
int n = a.size();
for(int i = 0; i < n; i++) fa[i] = a[i];
fa[n] = n;
}
实际上应该写成
vector<int> new_state(vector<int> a, int s) {
int n = a.size();
for(int i = 0; i <= n; i++) fa[i] = i;
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) if(a[i] == a[j]) {
merge(i, j);
}
}
}
- POI14 Driving Exam
还是去看ppt好了..
观察出一些性质后设计dp,发现每次转移很类似,用线段树的区间操作来进行转移。