题面

注意到每次只染色一行或者一列,那么我们最后输出第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. Web大文件上传断点续传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  2. Nowcoder farm ( 树状数组、二维前缀和、二维偏序 )

    题目链接 分析 : 最简单的想法当然就是去模拟 直接对每个施肥料的操作进行模拟.然后计算贡献 但是这显然会超时.这题需要换一个思维 对于一个土地(也就是二维平面上的一个点)的种类是 T' 如果它被操作 ...

  3. sql 建立索引之前计算区分度

    select cutomer_id,title,content from product_comment where audit_status=1 and product_id=1 and produ ...

  4. java set 顺序

    在java语言中,提供多种不同的结构来组织对象,Set(集合)是其中的一种,本身是一个接口,其迭代时的顺序取决于其具体实现.典型的实现包括:HashSet:哈希表是通过使用称为散列法的机制来存储信息的 ...

  5. C++入门经典-例5.17-右值引用的定义

    1:右值引用的定义: 类型 && i=被引用的对象: 左值与右值的区别在于,右值是临时变量,例如,函数的返回值,并且无法被改变. 当右值引用被初始化后,临时变量消失. 代码如下: // ...

  6. java代码如何在没有安装JDK的Windows下运行

    java代码如何在没有安装JDK的Windows下运行? 对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre.jre版本.jre在哪里下载.如何用jre启动Java应用等 ...

  7. js 外部引用文件与 onload()函数的优先级

    在HTML页面中的body加载进来的时候,外部引用的js文件存放的位置 1.js文件放在body里面,则是按照body的加载顺序(按先后顺序)进行加载 2.js文件放在<head>标签里面 ...

  8. leetcode 714. 买卖股票的最佳时机含手续费

    继承leetcode123以及leetcode309的思路,,但应该也可以写成leetcode 152. 乘积最大子序列的形式 class Solution { public: int maxProf ...

  9. leetcode 83删除排序链表中的重复元素

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  10. Rate 评分

    评分组件 基础用法 评分被分为三个等级,可以利用颜色对分数及情感倾向进行分级(默认情况下不区分颜色).三个等级所对应的颜色用过colors属性设置,而它们对应的两个阈值则通过 low-threshol ...