怎么只得60分?!
查看原帖
怎么只得60分?!
676309
Msnowy楼主2022/3/20 15:25

https://www.luogu.com.cn/record/71910161

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
int map1[101][101],n,m,k,ans,a,b,c,d;
int main(){
	cin>>n>>m>>k;
	memset(map1,0,sizeof(map1));
	for(int i=1;i<=m;i++){
		cin>>a>>b;
		map1[a][b-2]=1;
		map1[a-1][b-1]=1;
		map1[a][b-1]=1;
		map1[a+1][b-1]=1;
		
		map1[a-2][b]=1;
		map1[a-1][b]=1;
		map1[a][b]=1;
		map1[a+1][b]=1;
		map1[a+2][b]=1;
		
		map1[a-1][b+1]=1;
		map1[a][b+1]=1;
		map1[a+1][b+1]=1;
		map1[a][b+2]=1;
	}
	for(int i=1;i<=k;i++){
		cin>>c>>d;
		map1[c-2][d-2]=1;
		map1[c-1][d-2]=1;
		map1[c][d-2]=1;
		map1[c+1][d-2]=1;
		map1[c+2][d-2]=1;
		
		map1[c-2][d-1]=1;
		map1[c-1][d-1]=1;
		map1[c][d-1]=1;
		map1[c+1][d-1]=1;
		map1[c+2][d-1]=1;
		
		map1[c-2][d]=1;
		map1[c-1][d]=1;
		map1[c][d]=1;
		map1[c+1][d]=1;
		map1[c+2][d]=1;
		
		map1[c-2][d+1]=1;
		map1[c-1][d+1]=1;
		map1[c][d+1]=1;
		map1[c+1][d+1]=1;
		map1[c+2][d+1]=1;
		
		map1[c-2][d+2]=1;
		map1[c-1][d+2]=1;
		map1[c][d+2]=1;
		map1[c+1][d+2]=1;
		map1[c+2][d+2]=1;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(map1[i][j]==0)ans++;
		}
	}
	cout<<ans<<endl;;
    return 0;
}

额,这代码是不是有点长了? 教教我短代码吧

2022/3/20 15:25
加载中...