求助,20分
  • 板块P3397 地毯
  • 楼主WRTLEO2
  • 当前回复7
  • 已保存回复7
  • 发布时间2020/4/27 22:57
  • 上次更新2023/11/7 03:49:30
查看原帖
求助,20分
326796
WRTLEO2楼主2020/4/27 22:57

RT,RE了8个点。使用了浑身解数:register

unsigned

缩小数组

使用循环前置++i

快读

不说了,救救我吧

#include<bits/stdc++.h> 
using namespace std;
inline int read(){
	int x=0;
	int f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
} 

int main(){
    register int m,n,map[55][55];
	memset(map,0,sizeof(map));
	n=read();
	m=read();
	for(unsigned i=1;i<=m;++i){
	register int x1,y1,x2,y2;
	x1=read();y1=read();x2=read();y2=read();
	for(unsigned j=x1;j<=x2;++j){//从左上角横坐标开始,到右下角横坐标结束,代表每一行 
		for(unsigned k=y1;k<=y2;++k){ 
			map[j][k]++;//大任务:输出每一行;小任务:输出每一行的每一个字符 
		}
	}
}
	for(unsigned i=1;i<=n;++i){
		for(unsigned j=1;j<=n;++j){
			if(j==n){
				printf("%d",map[i][j]);
				printf("\n");
			} 
			else{
			 printf("%d",map[i][j]);
			 printf(" ");
		}
		}
	}
	return 0;
} 
2020/4/27 22:57
加载中...