为什么我用快读就TLE+RE,用cin就AC,快读写错了?
查看原帖
为什么我用快读就TLE+RE,用cin就AC,快读写错了?
850808
william1118楼主2024/11/27 10:13
#include<bits/stdc++.h>
#define ll long long
#define ms(a) memset(a,0,sizeof a)
using namespace std;
int n,m,q,t;
struct paint{
	ll color,priority;
}col[100001],row[100001];

inline ll read(){
	ll x=0,f=1;
	char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=(x<<3)+(x<<1)+ch^'0';
		ch=getchar();
	}
	return x*f;
}

void work(){
	n=read(),m=read(),q=read();
	ll cnt=1;
	for(int i=1;i<=n;i++)row[i].color=row[i].priority=0;
	for(int i=1;i<=m;i++)col[i].color=col[i].priority=0;
	for(int i=1;i<=q;i++){
		ll c,opt,x;
		opt=read(),x=read(),c=read();
		if(opt==1){// 第x列涂成c
			col[x].color=x;
			col[x].priority=cnt++;
		}else{// 第x行涂成c
			row[x].color=c;
			row[x].priority=cnt++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(col[j].priority>row[i].priority){
				cout<<col[j].color<<" ";
			}else cout<<row[i].color<<" ";
		}
		cout<<endl;
	}
//	for(int i=q;i>=1;i--){
//		if(f[i]=='R')cout<<"The color of "<<i<<"-th row is "<<row[i]<<endl;
//		if(f[i]=='C')cout<<"The color of "<<i<<"-th colum is "<<col[i]<<endl;
		
//	}
}
int main(){
	//记得清空数组!!! 
	cin>>t;
	while(t--){
		work();
	}
	return 0;
} 
2024/11/27 10:13
加载中...