关于快读
  • 板块学术版
  • 楼主Maxuejun
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/12/30 20:00
  • 上次更新2023/12/30 22:22:25
查看原帖
关于快读
935711
Maxuejun楼主2023/12/30 20:00

一道站外题

//加上了快读
//时间超限 AC:0%	
//1448 KiB
//5985 ms
#include<bits/stdc++.h>
using namespace std;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-'){
			f=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
void write(int x){
	if(x<0){
		x=-x;
		putchar('-');
	}
	if(x>9){
		write(x/10);
	}
	putchar(x%10+'0');
}
int mp[12][12],sum=0;
int main(){
    for(int i=0;i<12;i++){
    	for(int j=0;j<12;j++){
        	mp[i][j]=0;
		}
	}  
    for(int i=0;i<12;i++){
        mp[i][0]=-1;mp[0][i]=-1;mp[i][11]=-1;mp[11][i]=-1;
    }
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            mp[i][j]=read();
            //cin>>mp[i][j];
        } 
	}  
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0&&(mp[i-1][j]==-1||mp[i][j-1]==-1||mp[i+1][j]==-1||mp[i][j+1]==-1)){
            	mp[i][j]=-1;  
		    }
        }
	}  
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0&&(mp[i-1][j]==-1||mp[i][j-1]==-1||mp[i+1][j]==-1||mp[i][j+1]==-1)){
            	mp[i][j]=-1;  
		    }
        }
	}    
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0){
            	sum++;
			}
        }
	}    
    write(sum);
	return 0;       
}

//去掉了快读
//正确	
//1432 KiB
//10 ms
#include<bits/stdc++.h>
using namespace std;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-'){
			f=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
void write(int x){
	if(x<0){
		x=-x;
		putchar('-');
	}
	if(x>9){
		write(x/10);
	}
	putchar(x%10+'0');
}
int mp[12][12],sum=0;
int main(){
    for(int i=0;i<12;i++){
    	for(int j=0;j<12;j++){
        	mp[i][j]=0;
		}
	}  
    for(int i=0;i<12;i++){
        mp[i][0]=-1;mp[0][i]=-1;mp[i][11]=-1;mp[11][i]=-1;
    }
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            //mp[i][j]=read();
            cin>>mp[i][j];
        } 
	}  
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0&&(mp[i-1][j]==-1||mp[i][j-1]==-1||mp[i+1][j]==-1||mp[i][j+1]==-1)){
            	mp[i][j]=-1;  
		    }
        }
	}  
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0&&(mp[i-1][j]==-1||mp[i][j-1]==-1||mp[i+1][j]==-1||mp[i][j+1]==-1)){
            	mp[i][j]=-1;  
		    }
        }
	}    
    for(int i=1;i<11;i++){
    	for(int j=1;j<11;j++){
            if(mp[i][j]==0){
            	sum++;
			}
        }
	}    
    write(sum);
	return 0;       
}

这是为什么??求大佬指教

2023/12/30 20:00
加载中...