当前位置: 首页 > wzjs >正文

哈尔滨做网站的oeminc网站访客抓取

哈尔滨做网站的oeminc,网站访客抓取,小程序源码无需服务器,关于友情链接的作用有积木 原题目链接 题目描述 小明用积木搭了一个城堡。为了方便,小明使用的是大小相同的正方体积木,并将其搭建在一个 n 行 m 列的方格图上。每个积木占据方格图中的一个小格子。 小明的城堡是立体的,可以将积木垒在其他积木上。当某个格子…

积木

原题目链接

题目描述

小明用积木搭了一个城堡。为了方便,小明使用的是大小相同的正方体积木,并将其搭建在一个 nm 列的方格图上。每个积木占据方格图中的一个小格子。

小明的城堡是立体的,可以将积木垒在其他积木上。当某个格子上的积木较多时,这里就形成了一个高塔;当某个格子没有积木时,就是平地。

小明的城堡可以通过一个二维数组来表示,数组中的每个数表示该位置积木的层数。例如:

9 3 3 1
3 3 3 0
0 0 0 0

这个城堡的南面和东面是空地,西北面是大房子,西北角是高塔,东北角是车库。

现在,格格巫要来破坏城堡,他施放了魔法水淹没整个城堡。

  • 如果水的高度为 1,则会淹没靠近地面的积木。在上例中,共有 7 块积木被淹。
  • 如果水的高度为 2,则更多积木会被淹。在上例中,共有 13 块积木被淹。

现在,给定城堡的结构,请你计算当水的高度从 1H 时,每个高度下被水淹没的积木块数。


输入描述

  • 第一行包含两个整数 nm,表示城堡的行数和列数。
  • 接下来 n 行,每行包含 m 个整数,表示该格子上的积木层数(非负整数)。
  • 最后一行一个整数 H,表示水位的最高高度。

取值范围:

  • 1 ≤ n, m ≤ 1000
  • 1 ≤ H ≤ 10⁵
  • 每个格子中的积木层数 ≤ 10⁹

输出描述

输出 H 行,每行一个整数。第 i 行表示当水位为 i 时,被水淹没的积木块数。


输入示例

3 4
9 3 3 1
3 3 3 0
0 0 0 0
10

输出示例

7
13
19
20
21
22
23
24
25
25

c++代码

#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() {std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);ll n, m, x, H;vector<ll> ans(100006, 0);cin >> n >> m;for (ll i = 0; i < n * m; i++) {cin >> x;if (x > 0) ans[1]++, ans[x + 1] -= 1;}cin >> H;for (ll i = 1; i <= H; i++) ans[i] += ans[i - 1];for (ll i = 1; i <= H; i++) ans[i] += ans[i - 1], cout << ans[i] << endl;return 0;
}//by wqs

题目解析

定义ans[i]表示水位是i的时候,一共淹没多少格子。

假设某个坐标有9个格子,那么该坐标,1水位淹没一个,2水位淹没2个…9水位淹没9个,10水位还是淹没九个,11水位还是淹没9个。

也就是对于[1,9]操作ans[i] += i,对于大于9的部分,操作ans[i] += 9;

对于所有坐标都做这个操作就行。

接下来我们研究如何快速做这个操作。

算法思路

先看这么一个题,对于区间[L,R]的每个下标i,操作ans[i] += i;
对于下标大于R的操作ans[i] += R
例如0 0 0 0 0 0,
对[1,3]操作一次1 2 3 3 3 3,
再对区间[1,5]操作一次2 4 6 7 8 8.
有什么好的办法得出n次操作后的数组,用前缀和+差分
0 0 0 0 0 0
对[1,3]操作一次,[1,3]的值加一
1 1 1 0 0 0
[1,5]操作一次,[1,5]的值加一
2 2 2 1 1 0
前缀求和
2 4 6 7 8 8,刚好是原数组如何快速区间加一,这就是差分
初始化
0 0 0 0 0 0
对[1,3]操作一次,[1,3]的值加一,改变端点
1 0 0 -1 0 0
[1,5]操作一次,[1,5]的值加一,改变端点
2 0 0 -1 0 -1
求前缀和得出
2 2 2 1 1 0
再求前缀和得出
2 4 6 7 8 8,刚好是原数组
上面的执行n个操作只需O(n)的时间,因为一个操作是O(1)的复杂度.
http://www.dtcms.com/wzjs/672533.html

相关文章:

  • 哈尔滨企业网站排名网页设计的代码大全
  • 二手房网站开发长沙做网站哪家公司好
  • 做一百度网站吗佰汇康网站建设
  • 做网站的大小做网站排名优化有用吗
  • 怎么看网站是什么程序做的西安网站建设电话咨询
  • 网站建设首先要做淘宝联盟网站
  • 南阳卧龙区高端网站建设价格网站界面设计应遵循的原则
  • 做南美生意做什么网站好新网站如何做免费推广
  • 网络规划设计师教材整站seo
  • 网站域名后缀区别广东网站建设公司报价
  • 电影网站建设的核心是呼市做网站建设的公司哪家好
  • 网站开发流程 原型设计百度品牌广告
  • 佛山企业网站自助建站wordpress转域名收费吗
  • 新增网站备案网站织梦
  • ssh框架做的家政服务网站怎么介绍自己的网站建设
  • 响应式网站 乐云seo品牌企业为什么要做网站建设
  • php游戏网站建设全国建设工程执业资格注册中心网站
  • 商务网站建设公安徽省建设工程信息网招标公告
  • 网站制度建设模板安徽省网站备案快吗
  • 电商网站建设公司怎么样网站如何做tag
  • 济南建设工程信息网站创建网站需要什么技术
  • 儿童设计网站赤峰网站开发
  • 计算机网站建设职业群设计公司有哪些部门
  • 房地产网站源码不花钱的免费永久云服务器平台
  • 高邮做网站工商执照查询官网
  • 电子商务网站策划书3000字商丘网络推广平台
  • 有什么免费的网站怎样入门网站开发
  • 提高网站流量的软文案例软件前端开发主要做什么
  • 做窗帘网站图片大全网站流量统计系统企业版
  • wp网站如何做文件的付费下载蚂蜂窝网站源码