题面

注意到每次只染色一行或者一列,那么我们最后输出第i行第j列的数字是多少的时候只需要看一下最后一次i行和第j行被染了什么颜色,所以我们需要对每一行和一列记录最后一次染色的颜色

但是我们也需要比较是行比列后染色还是列比行后染色,所以我们还需要记录一下每行每列染色的最后时间

然后模拟即可

  1. #include <cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. int x[],y[],z[];
  5. int line[],cnt1,row[],cnt2;
  6. int bo1[],bo2[];
  7. int a[][];
  8. int main() {
  9. freopen("matrix.in","r",stdin);
  10. freopen("matrix.out","w",stdout);
  11. int n,m,q;
  12. scanf("%d%d%d",&n,&m,&q);
  13. for(register int i=;i<=q;i++){
  14. scanf("%d%d%d",&x[i],&y[i],&z[i]);
  15. }
  16. for(register int i=q;i>=;i--){
  17. if(x[i]==){
  18. if(bo2[y[i]]==){
  19. row[++cnt2]=i;
  20. bo2[y[i]]=;
  21. }
  22. }
  23. if(x[i]==){
  24. if(bo1[y[i]]==){
  25. line[++cnt1]=i;
  26. bo1[y[i]]=;
  27. }
  28. }
  29. }
  30. register int l1=cnt1,l2=cnt2;
  31. while(l1>&&l2>){
  32. if(row[l2]<line[l1]){
  33. for(register int j=;j<=m;j++){
  34. a[y[row[l2]]][j]=z[row[l2]];
  35. }
  36. --l2;
  37. }
  38. else{
  39. for(register int j=;j<=n;j++){
  40. a[j][y[line[l1]]]=z[line[l1]];
  41. }
  42. --l1;
  43. }
  44. }
  45. while(l1>){
  46. for(register int j=;j<=n;j++){
  47. a[j][y[line[l1]]]=z[line[l1]];
  48. }
  49. --l1;
  50. }
  51. while(l2>){
  52. for(register int j=;j<=m;j++){
  53. a[y[row[l2]]][j]=z[row[l2]];
  54. }
  55. --l2;
  56. }
  57. for(register int i=;i<=n;i++){
  58. for(register int j=;j<=m;j++){
  59. printf("%d ",a[i][j]);
  60. }
  61. printf("\n");
  62. }
  63. return ;
  64. }
  65. /*
  66. 3 3 3
  67. 1 1 3
  68. 2 2 1
  69. 1 2 2
  70.  
  71. 5 3 5
  72. 1 1 1
  73. 1 3 1
  74. 1 5 1
  75. 2 1 1
  76. 2 3 1
  77.  
  78. 6 4 9
  79. 1 1 1
  80. 1 3 2
  81. 1 4 3
  82. 2 2 4
  83. 1 2 5
  84. 2 3 6
  85. 1 4 7
  86. 2 2 1
  87. 1 2 1
  88.  
  89. */

CF 631B 题解的更多相关文章

  1. 【AtCoder】ARC094(C-F)题解

    C - Same Integers 题解 要么三个都达到最大的数,要么三个都到达最大的数+1,判断是前一种情况的方法是不断垫高前两大的,看之后最小的那个和最大的那个差值是不是2的倍数 否则就是第二种情 ...

  2. [题解向] CF#536Div2の题解 E&F

    \(0x01~~Preface\) \(emmm\)这次CF本身打的很顺畅,但是居然unrated了--咕咕咕咕 这是头一次CF有比赛我全部题目都做了--可喜可贺可喜可贺233 简单总结一下前面四道题 ...

  3. CF 449D 题解(状压+容斥)

    状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]. ...

  4. 【codeforces】【比赛题解】#915 Educational CF Round 36

    虽然最近打了很多场CF,也涨了很多分,但是好久没写CF的题解了. 前几次刚刚紫名的CF,太伤感情了,一下子就掉下来了,不懂你们Div.1. 珂学的那场我只做了第一题……悲伤. 这次的Education ...

  5. CF#581 (div2)题解

    CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...

  6. cojs 奈特 题解报告

    才知道knight念奈特,而不念科耐特 这个题显然是一个数据结构题目,我搬运的CF上的题 CF的题解好长超长哒,而且可以在线,但是并不能看懂 于是自己想了一个一种做法A掉了,唯一的缺陷就是做法有些繁琐 ...

  7. 【CF 676B Pyramid of Glasses】模拟,递归

    题目链接:http://codeforces.com/problemset/problem/676/B 题意:一个n层的平面酒杯金字塔,如图,每个杯子的容量相同.现在往最顶部的一个杯子倒 t 杯酒,求 ...

  8. [CF959E]Mahmoud and Ehab and the xor-MST题解

    解法 又是一道结论题? 我的做法比较奇怪且没有证明 #include <cstdio> #include <cmath> #define ll long long int ma ...

  9. 【CodeForces 297C】Splitting the Uniqueness

    题意 序列s有n个数,每个数都是不同的,把它每个数分成两个数,组成两个序列a和b,使ab序列各自去掉个数后各自的其它数字都不同. 如果存在一个划分,就输出YES,并且输出两个序列,否则输出NO. 分析 ...

随机推荐

  1. AngularJS基础语法

    1.ng-app 决定了angularjs的作用域范围,你可以如下使用: <html ng-app> … </html> 来让angularjs渲染整个页面,也可以使用 < ...

  2. 51nod 1402 最大值(贪心)

    原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1402 思路:借鉴了这篇博文http://blog.csdn.n ...

  3. 自定义IPython提示符

    首先创建IPython的自定义配置文件 $ ipython profile create 可以看到在HOME目录下: 多了两个配置文件 我们修改~/.ipython/profile_default/i ...

  4. C++入门经典-例6.5-连接字符串

    1:运行代码如下: // 6.5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> usin ...

  5. 剑指offer:把一个支付算转化为整数

    1:首先,根据课本上的程序,是这样的: #include "stdafx.h" #include "iostream" using namespace std; ...

  6. 套接字之msghdr结构

    用户端在使用sendmsg/recvmsg发送或者接收数据时,会使用msghdr来构造消息,其对应的内核结构为user_msghdr:其中msg_iov向量指向了多个数据区,msg_iovlen标识了 ...

  7. [MVC HtmlHelper简单了解]

    HtmlHelper用来在视图中显示Html控件,简化代码,使用方便!,降低了View视图中的代码复杂度!可以更快速的完成工作! 以下是一些常用 的html标签 辅助方法 使用HTML辅助方法输出   ...

  8. VIM速查表-转

    在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神. 最近抽空整理了这份速查表,收获颇丰,并分享给大家. 进入vim vim配置 移动光标 屏幕滚动 插入文本类 删除命令 ...

  9. 【flask】环境配置-python-dotenv的使用

    [自动发现程序实例] 一般来说,在执行flask run命令运行程序前,我们需要提供程序实例所在模块的位置 . Flask会自动探测程序实例,自动探测存在下面这些规则: 从当前目录寻找app.py和w ...

  10. zk 两阶段提交(待完善)

    zk 节点是一个 QuorumPeer,选举结束后,leader 和 follower 各自执行自己的逻辑: org.apache.zookeeper.server.quorum.QuorumPeer ...