2016-5-??授课(2)

  • POI19 Cloakroom

    • solution
      离线之后,将原本的d中bool值改为能凑出它的最小代价。
  • POI17 Sheep

  • SHOI2007 书柜的尺寸

    • solution
      lrj书上的dp例题。
      按高度从高到低决策,不妨设三层书的高度递减,那么每层的高度由第一本放入的书决定,那么新放入的书要么新开辟一层,同时贡献宽度和高度,那么放入当前层,只贡献宽度。
      将宽度表示在状态里,高度作为最小化的dp值。
    • notice
      实际上不用取\(2100 \times 2100\),\(1065 * 720\)就够了。
      注意三层书柜都得放书。
  • IOI2008 Island

    • description
      在基环外向树上求一个最长路。
    • solution
      一个单调队列就行了对吧,然而原题实际上很难写的样子。现在还没AC。。
  • NOI2012 迷失的游乐园
    还没看,留坑。

  • 圆圈游戏
    T2

  • [NOI2007]生成树计数

    • solution
      五个点的连通状态只有52种可能,用最小表示法+矩阵乘法即可通过所有的测试数据。
    • notice
      在从最小表示法得到当前的并查集时,一时脑抽写成了
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,发现每次转移很类似,用线段树的区间操作来进行转移。
posted @ 2016-05-26 22:55  Showson  阅读(150)  评论(0编辑  收藏  举报