题目链接: http://acm.whu.edu.cn/land/problem/detail?problem_id=1581

---------------------------------------------------------------------------------------

观察到第一维最大只有$10$ 于是第一维可以直接枚举 $($把长方体切成矩形$)$

观察到第二维最大只有$100$ 于是第二维也可以继续枚举 $($把矩形切成线段$)$

如果最后一维用线段树实现区间覆盖的话 复杂度为

$O(n^{2}kmlog(n * k ^ 2))$ $(n <= 10, k <= 10, m <= 1000)$

由于时限只有$500ms$ 还有多组数据 这样很可能$T$掉

再多想想我们会发现只有区间覆盖操作而没有区间修改操作$($相当于没有回档功能$)$

那就直接维护每个点所在覆盖线段的右端点即可

而维护操作显然是用并查集比较方便

复杂度减少了一个$log$后 单组$10^6$ 多组也不会$T$了

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int a[][][], fa[][][];
int n, k0, m, n2, n3, sum, ans;
int p1, q1, r1, p2, q2, r2;
int findf(int x, int y, int z)
{
if(fa[x][y][z] != z)
fa[x][y][z] = findf(x, y, fa[x][y][z]);
return fa[x][y][z];
}
int main()
{
while(scanf("%d%d%d", &n, &k0, &m) != EOF)
{
n2 = n * k0;
n3= n2 * k0;
for(int i = ; i <= n; ++i)
for(int j = ; j <= n2; ++j)
{
for(int k = ; k <= n3; ++k)
{
scanf("%d", &a[i][j][k]);
fa[i][j][k] = k;
}
fa[i][j][n3 + ] = n3 + ;
}
sum = ;
ans = -1e9;
while(m--)
{
scanf("%d%d%d%d%d%d", &p1, &q1, &r1, &p2, &q2, &r2);
for(int i = p1; i <= p2; ++i)
for(int j = q1; j <= q2; ++j)
for(int k = r1; k <= r2; k = fa[i][j][k])
if(findf(i, j, k) == k)
{
sum += a[i][j][k];
fa[i][j][k] = findf(i, j, k + );
}
ans = max(ans, sum);
}
printf("%d\n", ans);
}
return ;
}

whu 1581 Union of cubes的更多相关文章

  1. SQL Server-聚焦UNIOL ALL/UNION查询(二十三)

    前言 本节我们来看看有关查询中UNION和UNION ALL的问题,简短的内容,深入的理解,Always to review the basics. 初探UNION和UNION ALL 首先我们过一遍 ...

  2. SQL 提示介绍 hash/merge/concat union

    查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...

  3. LINQ to SQL语句(8)之Concat/Union/Intersect/Except

    适用场景:对两个集合的处理,例如追加.合并.取相同项.相交项等等. Concat(连接) 说明:连接不同的集合,不会自动过滤相同项:延迟. 1.简单形式: var q = ( from c in db ...

  4. SQLServer-----Union,Union All的使用方法

    转载: http://blog.csdn.net/kiqinie/article/details/8132485 select a.Name from Material as a union sele ...

  5. 假如 UNION ALL 里面的子句 有 JOIN ,那个执行更快呢

    比如: select id, name from table1 where name = 'x' union all select id, name from table2 where name =  ...

  6. sql union和union all的用法及效率

    UNION指令的目的是将两个SQL语句的结果合并起来.从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION的一个限制是两个 ...

  7. 【oracle】union、union all、intersect、minus 的用法及区别

    一.union与union all 首先建两个view create or replace view test_view_1 as as c from dual union as c from dua ...

  8. sql with as union all

    WITH RPL (FId,Fname,Forder) AS ( SELECT ment.deptno,ment.deptname,ment.orderno FROM JTERP..fg_depart ...

  9. Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

随机推荐

  1. The Frog's Games

    The Frog's Games Problem Description The annual Games in frogs' kingdom started again. The most famo ...

  2. 洛谷 P1631 序列合并(优先队列)

    传送门 解题思路 首先读入a.b数组后,sort一遍(从小到大),然后把a[1]+b[1],a[2]+b[1],a[3]+b[1]……a[n]+b[1]全部加入一个优先队列q(小根堆). 然后从一到n ...

  3. 在centos6.4下安装python3.5

    1.安装依赖包 ./configure --prefix=/usr/local/python3.5 --enable-shared make && make install yum g ...

  4. PHP实现支付宝小程序用户授权的工具类

    背景 最近项目需要上线支付宝小程序,同时需要走用户的授权流程完成用户信息的存储,以前做过微信小程序的开发,本以为实现授权的过程是很简单的事情,但是再实现的过程中还是遇到了不少的坑,因此记录一下实现的过 ...

  5. 剑指offer-栈的压入、弹出序列-栈和队列-python

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  6. uwsgi支持http长链接

    http1.1支持长链接,而http1.0不支持,所以,在切换http版本号或者升级服务端版本时候,尤其要注意这个造成的影响. 当客户端以http1.1长链接方式连接服务端时,服务端如果不支持1.1, ...

  7. CCF201412-2 Z字形扫描 java(100分)

    试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...

  8. pyqt5-QAbstractScrollArea滚动条

    继承  QObject-->QWidget-->QFrame-->QAbstractScrollArea 是抽象类 import sys from PyQt5.QtWidgets i ...

  9. Node.js 版本管理工具——nvm

    日常项目开发中,有些项目可能基于node  V10 或者 V8 不同的版本: 如果我们手动安装卸载node,这样是不友好. 先放上作者的博客地址 : https://www.cnblogs.com/g ...

  10. PHP培训教程 PHP里10个鲜为人知但却非常有用的函数

    php里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用.这篇文章里,兄弟连小编列举了一些鲜为人知但会让你眼睛一亮的PHP函数. levenshtein( ...