题面

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

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

然后模拟即可

#include <cstdio>
#include <iostream>
using namespace std;
int x[],y[],z[];
int line[],cnt1,row[],cnt2;
int bo1[],bo2[];
int a[][];
int main() {
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
int n,m,q;
scanf("%d%d%d",&n,&m,&q);
for(register int i=;i<=q;i++){
scanf("%d%d%d",&x[i],&y[i],&z[i]);
}
for(register int i=q;i>=;i--){
if(x[i]==){
if(bo2[y[i]]==){
row[++cnt2]=i;
bo2[y[i]]=;
}
}
if(x[i]==){
if(bo1[y[i]]==){
line[++cnt1]=i;
bo1[y[i]]=;
}
}
}
register int l1=cnt1,l2=cnt2;
while(l1>&&l2>){
if(row[l2]<line[l1]){
for(register int j=;j<=m;j++){
a[y[row[l2]]][j]=z[row[l2]];
}
--l2;
}
else{
for(register int j=;j<=n;j++){
a[j][y[line[l1]]]=z[line[l1]];
}
--l1;
}
}
while(l1>){
for(register int j=;j<=n;j++){
a[j][y[line[l1]]]=z[line[l1]];
}
--l1;
}
while(l2>){
for(register int j=;j<=m;j++){
a[y[row[l2]]][j]=z[row[l2]];
}
--l2;
}
for(register int i=;i<=n;i++){
for(register int j=;j<=m;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return ;
}
/*
3 3 3
1 1 3
2 2 1
1 2 2 5 3 5
1 1 1
1 3 1
1 5 1
2 1 1
2 3 1 6 4 9
1 1 1
1 3 2
1 4 3
2 2 4
1 2 5
2 3 6
1 4 7
2 2 1
1 2 1 */

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. 14、SpinBox与Horizontal Scroll Bar

    设定这两个控件maximum为100,转到槽 void MainWindow::on_horizontalSlider_valueChanged(int value) { ui->spinBox ...

  2. UVa 1592 Database (map)

    题意:给出n行m列的数据库(数据范围: n 1~10000, m 1~10), 问你能不能找出两行r1, r2,使得这两行中的c1, c2列是一样的, 即(r1,c1)==(r2,c1) && ...

  3. MySQL的字符集操作命令总结

    这篇文章主要介绍了MySQL的字符集操作命令总结,包括各种查看数据库.数据表等查询命令,需要的朋友可以参考下   以下均在mysql 5.5命令行中运行通过: 查看MySQL支持的字符集: 代码如下: ...

  4. ID生成 雪花算法

    /** * ID生成 雪花算法 */ public class SnowFlake { public static SnowFlake getInstance() { return Singleton ...

  5. 网页中JS函数自动执行常用三种方法

    (1)最简单的调用方式,直接写到html的body标签里面:        <body onload="myFunction()"></body>      ...

  6. LeetCode 55. 跳跃游戏(Jump Game)

    题目描述 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: ...

  7. MySQL5.7忘记root密码-手动修改密码教程

    https://blog.csdn.net/greywolf0824/article/details/80215199

  8. leetcode 56区间合并

    class Solution { public: static bool cmp(vector<int> a,vector<int> b){ ]<b[]; } vecto ...

  9. ERROR: Command "python setup.py egg_info" python-nss

    [root@localhost ~]# pip install python-nss DEPRECATION: Python 2.7 will reach the end of its life on ...

  10. emqtt 系统主题

    $SYS-系统主题 EMQ 消息服务器周期性发布自身运行状态.MQTT 协议统计.客户端上下线状态到 $SYS/ 开头系统主题. $SYS 主题路径以 “$SYS/brokers/{node}/” 开 ...