luogu#P9715. 「QFOI R1」头

「QFOI R1」头

题目背景

可以看看这个讨论:https://www.luogu.com.cn/discuss/703835

题目描述

小 R 是一个可爱的女孩子。有一天,她在被摸头时,突然灵光乍现,便随手加强了一道题给你做。

这道题的名字叫涂色游戏。初始时你有一个 nnmm 列的网格,所有格子上都没有颜色。有 kk 种颜色的刷子,颜色编号为 1k1\sim k。然后给出 qq 次操作,每次操作给出 op,l,r,c,top,l,r,c,t 五个参数:

  • 如果 op=1op=1,表示将第 lrl\sim r 行的所有格子涂成颜色 cc
  • 如果 op=2op=2,表示将第 lrl\sim r 列的所有格子涂成颜色 cc
  • 如果 t=0t=0,意味着如果涂色时遇到已经被染色的格子,就不再进行染色。
  • 如果 t=1t=1,意味着如果涂色时遇到已经被染色的格子,就用新的颜色覆盖它。

在所有涂色操作结束以后,对于每种颜色,求出有多少个格子被染成了这种颜色。

输入格式

第一行四个整数 n,m,k,qn,m,k,q,表示行数、列数、颜色数和操作数。

接下来 qq 行,每行五个整数 op,l,r,c,top,l,r,c,t,表示这次操作的参数。

输出格式

一行 kk 个整数,第 ii 个整数表示被染成颜色 ii 的格子数量。

5 5 2 4
1 2 4 1 0
2 4 5 1 1
2 2 4 2 0
1 1 1 2 1
17 7
5 5 3 6
2 1 3 3 1
2 2 4 1 0
1 4 4 2 0
2 1 1 1 0
1 2 5 2 0
1 1 5 3 0
5 4 16

提示

样例 11 解释

用浅灰色表示颜色 11,灰色表示颜色 22

涂色过程如图所示:

共有 1717 个区域被染成颜色 1177 个区域被染成颜色 22


数据范围

本题共 2020 个测试点,每个测试点 55 分。

对于全部数据,保证 1n,m,q2×1061\le n,m,q\le 2\times 10^61k5×1051\le k\le 5\times 10^5op{1,2}op\in\{1,2\},若 op=1op=11lrn1\le l\le r\le n,若 op=2op=21lrm1\le l\le r\le m1ck1\le c\le kt{0,1}t\in\{0,1\}

  • 对于测试点 131\sim 3:保证 n,m,k,q200n,m,k,q\le 200
  • 对于测试点 464\sim 6:保证 n,m,k,q2×103n,m,k,q\le 2\times 10^3
  • 对于测试点 797\sim 9:保证 n,m,k,q105n,m,k,q\le 10^5op=1op=1
  • 对于测试点 101210\sim 12:保证 n,m,k,q105n,m,k,q\le 10^5t=1t=1
  • 对于测试点 131813\sim 18:保证 n,m,k,q105n,m,k,q\le 10^5
  • 对于测试点 192019\sim 20:无特殊限制。