题目

题目链接,我只在poj上找到了题目,usaco居然上不去。

大意就是说有一些\(1\times 1\times 1\)的小方块堆在一起,问最多能装多少水。

我们在一次测试中出了这题,由于我写水题的能力太弱,挂掉了。

算法1

这是我当时想到的方法。

我们可以统计出每一层能装多少水。由于层数达到了\(10^9\),所以需要离散化一下。

我们可以用并查集来维护装水的面积。

时间复杂度:\(O(n^2 \alpha (n^2))\)。

算法2

这是《算法艺术》\(P89\)上的例题(同时也是POI的原题!)。

书上的想法是从外往内维护边缘的方块的高度,根据“木桶效应”,我们从中选一个最矮的来往里面更新,这个可以用优先队列加快速度。

其实我觉得还可以这样思考:先令整个空间堆满水,除了在外围的方块。不妨设\(h(i,j)\)为位于\((i,j)\)的方块的高度,\(f(i,j)\)为可以装多少水。我们可以不断地迭代更新:如果\((x,y)\)与\((i,j)\)相邻,那么\(f(x,y) = max(h(x,y), f(i,j))\)。这样经过有限次数的迭代之后我们就得到了正确答案。当然,这样的效率是很低的,我们可以利用DijkstraOrz的思想,每次用\(f\)最小的去迭代其他的,由于它已经是最小的了,不可能再被人迭代了(这正是Dijkstra最短路的思想),所以我们每个点只需要去更新其他相邻的点一次。同样,我们也可以用优先队列来加快这一过程。

时间复杂度:\(O(n^2 \log n^2)\)。

USACO 2005 January Gold The Wedding Juicer的更多相关文章

  1. 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群

    题目描述 Bessie想驾驶她的飞船穿过危险的小行星群,小行星群是一个N×N的网格(1 <= N <= 500),在网格内有K个小行星(1 <= K <= 10,000). 幸 ...

  2. [USACO 2018 Feb Gold] Tutorial

    Link: USACO 2018 Feb Gold 传送门 A: $dp[i][j][k]$表示前$i$个中有$j$个0且末位为$k$的最优解 状态数$O(n^3)$ #include <bit ...

  3. [USACO 2018 Jan Gold] Tutorial

    Link: USACO 2018 Jan Gold 传送门 A: 对于不同的$k$,发现限制就是小于$k$的边不能走 那么此时的答案就是由大于等于$k$的边形成的图中$v$所在的连通块除去$v$的大小 ...

  4. [USACO 2017 Dec Gold] Tutorial

    Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...

  5. USACO 2006 November Gold Corn Fields

    USACO 2006 November Gold Corn Fields 题目描述: Farmer John has purchased a lush new rectangular pasture ...

  6. USACO 2016 January Contest, Gold解题报告

    1.Angry Cows http://www.usaco.org/index.php?page=viewproblem2&cpid=597 dp题+vector数组运用 将从左向右与从右向左 ...

  7. POJ 2230 Watchcow && USACO Watchcow 2005 January Silver (欧拉回路)

    Description Bessie's been appointed the new watch-cow for the farm. Every night, it's her job to wal ...

  8. usaco 月赛 2005 january sumset

    2013-09-18 08:23 打表找规律 w[i]:=w[i-1];  奇 w[i]:=w[i-1]+w[i div 2];     偶 //By BLADEVIL var w :..] of l ...

  9. usaco 月赛 2005 january watchcow

    2013-09-18 08:13 //By BLADEVIL var n, m :longint; pre, other :..] of longint; last :..] of longint; ...

随机推荐

  1. 快速配置SSH证书登录

    环境: 在 CentOS 5/6/7.RHEL 5/6/7 和 Oracle Linux 6/7 上测试通过 使用 ssh-key-gen 命令生成公钥和私钥 用 ssh-copy-id 命令将公钥复 ...

  2. U-Boot在FL2440上移植(二)----支持NOR Flash

    <一>选择NOR flash型号 我的开发板上的nor flash芯片是Intel的JS28F320(4MB)(1device=32blocks,1block=128MB fl2440默认 ...

  3. A. Liserious战队

    Liserious战队是一支活跃在京沪地区的著名密室逃脱战队,在优秀的队长Liserious和芳姐的带领下,打遍天下大大小小的密室逃脱,攻无不克,战无不胜,上天入地无所不能. 世界密室逃脱委员会以IS ...

  4. XMPP--- error : linker command failed with exit code 1

    error: linker command failed with exit code 1 (use -v to see invocation) 错误原因:libidn.a文件没添加上去 解决方法:l ...

  5. POJ 1947 - Rebuilding Roads 树型DP(泛化背包转移)..

    dp[x][y]表示以x为根的子树要变成有y个点..最少需要减去的边树... 最终ans=max(dp[i][P]+t)  < i=(1,n) , t = i是否为整棵树的根 > 更新的时 ...

  6. Ubuntu 13.04 安装使用clang

    其实很简单,就是用命令即可: apt-get install clang-3.2 clang-3.2-doc 主要说明一点,/usr/bin/c++链接原来指向g++,现在被改变了. $ ls /us ...

  7. BitNami一键安装Redmine

    1. 简单介绍 对于一个新手,假设严格依照官方文档来安装redmine,我想会"疯"掉的.有没有一种简便的方法.有滴,那就是BitNami. BitNami提供redmine的一键 ...

  8. 【OpenCV】OpenCV2.4.6 与Visiual Studio 2008,Python2.7.5配置和图像载入显示

    自从OpenCV2.2开始,OpenCV 库便分成几个模块并位于lib文件中,本节介绍从OpenCV2.4.6与VS2008 .Python2.7.5如何配置环境,如何外部文件载 入图像.在窗口中显示 ...

  9. javascript 生成页面轮播元素

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...

  10. MYSQLI - mysqli操作数据库

    <?php //模型类 class Model { //数据库连接 private $_conn = NULL; //where语句 private $_where = NULL; //表名称 ...