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

中济建设官方网站媒体代发网站

中济建设官方网站,媒体代发网站,wordpress怎么改主页背景,点图片跳到网站怎么做Week 1 2月17日 农夫约翰的奶酪块 农夫约翰有一块立方体形状的奶酪,它位于三维坐标空间中,从 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 延伸至 ( N , N , N ) (N,N,N) (N,N,N)。 农夫约翰将对他的奶酪块执行一系列 Q Q Q 次更新操作。 对于每次更新操作&…



Week 1
2月17日


农夫约翰的奶酪块

农夫约翰有一块立方体形状的奶酪,它位于三维坐标空间中,从 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 延伸至 ( N , N , N ) (N,N,N) (N,N,N)

农夫约翰将对他的奶酪块执行一系列 Q Q Q 次更新操作。

对于每次更新操作,农夫约翰将从整数坐标 ( x , y , z ) (x,y,z) (x,y,z) ( x + 1 , y + 1 , z + 1 ) (x+1,y+1,z+1) (x+1,y+1,z+1) 处切割出一个 1 × 1 × 1 1×1×1 1×1×1 的奶酪块,其中 0 ≤ x , y , z < N 0≤x,y,z<N 0x,y,z<N

输入保证在农夫约翰切割的位置上存在一个 1 × 1 × 1 1×1×1 1×1×1 的奶酪块。

由于农夫约翰正在玩牛的世界,当下方的奶酪被切割后,重力不会导致上方的奶酪掉落。

在每次更新后,输出农夫约翰可以将一个 1 × 1 × N 1×1×N 1×1×N 的砖块插入奶酪块中的方案数,使得砖块的任何部分都不与剩余的奶酪重叠。

砖块的每个顶点在全部三个坐标轴上均必须具有整数坐标,范围为 [ 0 , N ] [0,N] [0,N]

农夫约翰可以随意旋转砖块。

输入格式

输入的第一行包含 N N N Q Q Q

以下 Q Q Q 行包含 x x x y y y z z z,为要切割的位置的坐标。

输出格式

在每次更新操作后,输出一个整数,为所求的方案数。

数据范围

2 ≤ N ≤ 1000 2 \le N \le 1000 2N1000,
1 ≤ Q ≤ 2 × 1 0 5 1 \le Q \le 2 \times 10^5 1Q2×105,
0 ≤ x , y , z < N 0 \le x,y,z < N 0x,y,z<N

输入样例:
2 5
0 0 0
1 1 1
0 1 0
1 0 0
1 1 0
输出样例:
0
0
1
2
5
样例解释

在前三次更新操作后, [ 0 , 1 ] × [ 0 , 2 ] × [ 0 , 1 ] [0,1]×[0,2]×[0,1] [0,1]×[0,2]×[0,1] 范围的 1 × 2 × 1 1×2×1 1×2×1 砖块与剩余的奶酪不重叠,因此它贡献了答案。

fig_1_cheese_bronze_dec24.png


思路:

我们需要解决的问题是模拟在三维空间中对奶酪块进行一系列切割操作,并在每次切割后计算可以插入一个 (1 * 1 * N) 砖块的不同方案数

题目解析

  1. 输入格式

    • 第一行包含两个整数 NQ,分别表示奶酪块的大小和更新操作的次数。
    • 接下来的 Q 行每行包含三个整数 x, y, z,表示需要切割的坐标。
  2. 处理逻辑

    • 使用三个二维数组 a, b, c 分别记录在不同维度方向上的切割情况。
      • a[x][y]:记录在第 x 行、第 y 列方向上被切割的次数。
      • b[x][z]:记录在第 x 层、第 z 列方向上被切割的次数。
      • c[y][z]:记录在第 y 层、第 z 行方向上被切割的次数。
    • 在每次切割后,检查是否可以在某个方向上插入一个完整的 1x1xN 砖块(即某个方向上已经被切割了 N 次)。
  3. 输出格式

    • 在每次更新操作后,输出当前可以插入砖块的方案数。

示例解释

对于给定的输入样例:

2 5
0 0 0
1 1 1
0 1 0
1 0 0
1 1 0
  • 第一次切割 (0, 0, 0):没有完整的一维方向被切割,所以方案数为 0
  • 第二次切割 (1, 1, 1):依然没有完整的一维方向被切割,所以方案数仍为 0
  • 第三次切割 (0, 1, 0):现在在 a[0][1] 方向上已经切割了一次,但还未达到 N=2,所以方案数仍为 0
  • 第四次切割 (1, 0, 0):在 b[1][0] 方向上切割了一次,仍未达到 N=2,所以方案数增加到 1
  • 第五次切割 (1, 1, 0):在 c[1][0] 方向上切割了一次,达到了 N=2,因此方案数增加到 5


code:

n, q = map(int, input().split()) # 初始化三个二维数组a, b, c来记录每个维度上的切割情况
# a[x][y]表示在x行y列方向上被切割的次数
# b[x][z]表示在x层z列方向上被切割的次数
# c[y][z]表示在y层z行方向上被切割的次数
a = [[0] * n for _ in range(n)]
b = [[0] * n for _ in range(n)]
c = [[0] * n for _ in range(n)]ans = 0  for _ in range(q):x, y, z = map(int, input().split())  # 获取要切割的位置坐标(x, y, z)# 更新对应位置的切割次数a[x][y] += 1b[x][z] += 1c[y][z] += 1# 检查是否可以在某个方向上插入一个完整的1x1xN砖块if a[x][y] == n:  # 如果在x行y列方向上已经完全切割了N次ans += 1if b[x][z] == n:  # 如果在x层z列方向上已经完全切割了N次ans += 1if c[y][z] == n:  # 如果在y层z行方向上已经完全切割了N次ans += 1print(ans)  


END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

http://www.dtcms.com/wzjs/324367.html

相关文章:

  • 黑色装修网站源码dede引擎优化seo怎么做
  • 青浦区网站建设公司sem工资
  • 做足球采集软件和预测软件的网站微信推广方法
  • wordpress建站系统如何查询域名注册人信息
  • 济南品牌网站建设定制seo在线排名优化
  • hbuilder 做网站seo整合营销
  • 怎么把网站挂在服务器谷歌商店paypal官网
  • 网站开发 荣誉资质关键词排名哪里查
  • 通州企业网站建设小红书怎么做关键词排名优化
  • 上海网站关键词排名优化报价桌面百度
  • 中山市建设局网站窗口电话号码电商热门关键词
  • 十句经典广告语优化设计的答案
  • 怎么查看网站是否降权福州短视频seo获客
  • wordpress极客主题厦门seo公司
  • 旅游网站制作方案网站制作的基本流程是什么
  • 网站seo竞争分析工具已备案域名30元
  • 找人做网站要多少钱什么平台打广告比较好免费的
  • 桂林 网站建站app开发软件
  • mi2设计公司网站西安百度关键词包年
  • wordpress 安装乱码北京seo网络优化招聘网
  • 怎样网站建设seo做的比较好的公司
  • 公司网站设计专业的免费下载百度并安装
  • 政府门户网站网站维护费用一般多少钱
  • 有关外贸的网站有哪些开鲁seo服务
  • 教育培训机构怎么建设网站公司免费推广网站
  • 汝州市住房和城乡规划建设局网站google关键词搜索技巧
  • 顺德高端网站设计韩国搜索引擎排名
  • 东莞临时工最新招聘信息上海关键词优化报价
  • 亿通网站建设南宁seo推广外包
  • 创新的江苏网站建设百度软文推广怎么做