CF 631B 题解
注意到每次只染色一行或者一列,那么我们最后输出第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 题解的更多相关文章
- 【AtCoder】ARC094(C-F)题解
C - Same Integers 题解 要么三个都达到最大的数,要么三个都到达最大的数+1,判断是前一种情况的方法是不断垫高前两大的,看之后最小的那个和最大的那个差值是不是2的倍数 否则就是第二种情 ...
- [题解向] CF#536Div2の题解 E&F
\(0x01~~Preface\) \(emmm\)这次CF本身打的很顺畅,但是居然unrated了--咕咕咕咕 这是头一次CF有比赛我全部题目都做了--可喜可贺可喜可贺233 简单总结一下前面四道题 ...
- CF 449D 题解(状压+容斥)
状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]. ...
- 【codeforces】【比赛题解】#915 Educational CF Round 36
虽然最近打了很多场CF,也涨了很多分,但是好久没写CF的题解了. 前几次刚刚紫名的CF,太伤感情了,一下子就掉下来了,不懂你们Div.1. 珂学的那场我只做了第一题……悲伤. 这次的Education ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- cojs 奈特 题解报告
才知道knight念奈特,而不念科耐特 这个题显然是一个数据结构题目,我搬运的CF上的题 CF的题解好长超长哒,而且可以在线,但是并不能看懂 于是自己想了一个一种做法A掉了,唯一的缺陷就是做法有些繁琐 ...
- 【CF 676B Pyramid of Glasses】模拟,递归
题目链接:http://codeforces.com/problemset/problem/676/B 题意:一个n层的平面酒杯金字塔,如图,每个杯子的容量相同.现在往最顶部的一个杯子倒 t 杯酒,求 ...
- [CF959E]Mahmoud and Ehab and the xor-MST题解
解法 又是一道结论题? 我的做法比较奇怪且没有证明 #include <cstdio> #include <cmath> #define ll long long int ma ...
- 【CodeForces 297C】Splitting the Uniqueness
题意 序列s有n个数,每个数都是不同的,把它每个数分成两个数,组成两个序列a和b,使ab序列各自去掉个数后各自的其它数字都不同. 如果存在一个划分,就输出YES,并且输出两个序列,否则输出NO. 分析 ...
随机推荐
- inline元素导航栏案例
练习一个超链接元素在文档流当中,a标签显示出来的inline这种元素的特性.我们可以用display来将它转换成inline-block类型,这样我们就可以设置它的高度,宽度和它的背景颜色等等特性了. ...
- python from…import* 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目.然而这种声明不该被过多地使用. ...
- BZOJ 3732: Network Kruskal 重构树
模板题,练练手~ Code: #include <cstdio> #include <algorithm> #define N 80000 #define setIO(s) f ...
- luoguP1772 [ZJOI2006]物流运输 x
P1772 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线 ...
- Jmeter(五)关联之正则表达式提取器
我们在用Jmeter做接口或者性能测试时,经常会碰到第二个请求提交的的参数要从第一个请求返回的参数中获取,而这些参数值并不是固定的,是动态变化的,这种场景就要用到关联 Jmeter提供了一种叫做正则提 ...
- Mongo rs
概念 rs中存储了每一次对mongo数据库的CUD操作,对rs的大小进行resize. 主要有两种方法: 在未开启过rs的情况下,修改配置文件 已使用rs一段时间后,发现rs太大,重新进行大小配置 启 ...
- [CSP-S模拟测试]:小L的数(数位DP+模拟)
题目传送门(内部题132) 输入格式 第一行一个整数$t$. 接下来$t$行每行一个整数$n$. 输出格式 $t$行,每行一个整数表示答案. 样例 样例输入: 41818231232691052109 ...
- easyui tree 点击state=closed节点,每次重新加载数据
http://blog.csdn.net/lovejavaloveworld/article/details/30052305 树控件读取URL.子节点的加载依赖于父节点的状态.当展开一个封闭的节点, ...
- 剑指offer-Q60 n个骰子的点数
python版本代码 g_maxValue = 6 # 单个骰子最大的点数 def PrintProbability(number): ''' :param number: 骰子的个数 :return ...
- linux文档与目录的相关命令
Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来 ...