社区讨论

暴力打表20悬棺求调

P1789【Mc生存】插火把参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m4o6q0hs
此快照首次捕获于
2024/12/14 21:00
去年
此快照最后确认于
2025/11/04 12:51
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
	long c[1000][1000];
	long long n,k,m,a,b,e,d,sum=0,num;
	cin>>n>>k>>m;
	num=n*n;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			c[i][j]=1;
		}
	}
	for(int i=1;i<=k;++i){
		cin>>a>>b;
		if(c[a][b]==1){
			c[a][b]=0;
			sum++;
		}
		if(c[a+1][b]==1){
			c[a+1][b]=0;
			sum++;
		}
		if(c[a+2][b]==1){
			c[a+2][b]=0;
			sum++;
		}
		if(c[a][b+1]==1){
			c[a][b+1]=0;
			sum++;
		}
		if(c[a][b+2]==1){
			c[a][b+2]=0;
			sum++;
		}
		if(c[a-1][b]==1){
			c[a-1][b]=0;
			sum++;
		}
		if(c[a-2][b]==1){
			c[a-2][b]=0;
			sum++;
		}
		if(c[a][b-1]==1){
			c[a][b-1]=0;
			sum++;
		}
		if(c[a][b-2]==1){
			c[a][b-2]=0;
			sum++;
		}
	}
	if(m==0){
		cout<<num-sum;
	}
	else{
		for(int i=1;i<=m;++i){
			cin>>e>>d;
			if(c[e][d]==1){
				c[e][d]=0;
				sum++;
			}
			if(c[e+1][d]==1){
				c[e+1][d]=0;
				sum++;
			}
			if(c[e+2][d]==1){
				c[e+2][d]=0;
				sum++;
			}
			if(c[e][d+1]==1){
				c[e][d+1]=0;
				sum++;
			}
			if(c[e][d+2]==1){
				c[e][d+2]=0;
				sum++;
			}
			if(c[e-1][d]==1){
				c[e-1][d]=0;
				sum++;
			}if(c[e-2][d]==1){
				c[e-2][d]=0;
				sum++;
			}
			if(c[e][d-1]==1){
				c[e][d-1]=0;
				sum++;
			}
			if(c[e][d-2]==1){
				c[e][d-2]=0;
				sum++;
			}
			if(c[e+1][d+1]==1){
				c[e+1][d+1]=0;
				sum++;
			}
			if(c[e+1][d+2]==1){
				c[e+1][d+2]=0;
				sum++;
			}
			if(c[e+2][d+1]==1){
				c[e+2][d+1]=0;
				sum++;
			}
			if(c[e+2][d+2]==1){
				c[e+2][d+2]=0;
				sum++;
			}
			if(c[e-1][d+1]==1){
				c[e-1][d+1]=0;
				sum++;
			}
			if(c[e-2][d+1]==1){
				c[e-2][d+1]=0;
				sum++;
			}
			if(c[e-2][d-1]==1){
				c[e-2][d-1]=0;
				sum++;
			}
			if(c[e-2][d+2]==1){
				c[e-2][d+2]=0;
				sum++;
			}
			if(c[e-1][d+2]==1){
				c[e-1][d+2]=0;
				sum++;
			}
			if(c[e-1][d-1]==1){
				c[e-1][d-1]=0;
				sum++;
			}
			if(c[e-2][d-2]==1){
				c[e-2][d-2]=0;
				sum++;
			}
			if(c[e-1][d-2]==1){
				c[e-1][d-2]=0;
				sum++;
			}
			if(c[e+1][d-1]==1){
				c[e+1][d-1]=0;
				sum++;
			}
			if(c[e+1][d-2]==1){
				c[e+1][d-2]=0;
				sum++;
			}
			if(c[e+2][d-1]==1){
				c[e+2][d-1]=0;
				sum++;
			}
			if(c[e+2][d-2]==1){
				c[e+2][d-2]=0;
				sum++;
			}
		}		
	}
	cout<<num-sum;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...