暴力搜索但0分,疑惑中,求助

P1789 【Mc生存】插火把

```c #include<stdio.h> int mul(int x,int y) { int s=x*y; if(s<0) return -s; else return s; } int main(){ int m,n,k,x[200]={0},y[200]={0},o[200]={0},p[200]={0},dy[200][200]={0};//m为火把数,k为萤石数,n为n*n方阵 scanf("%d %d %d",&n,&m,&k); for(int i=3;i<m+3;i++)//火把亮点 { scanf("%d %d",&x[i],&y[i]); x[i]+=2; y[i]+=2; for(int a=-2;a<=2;a++) { for(int b=-2;b<=2;b++) { if(mul(a,b)!=2&&mul(a,b)!=4) dy[x[i]+a][y[i]+b]++; } } } for(int i=3;i<k+3;i++)//萤石亮点 { scanf("%d %d",&o[i],&p[i]); o[i]+=2; p[i]+=2; for(int x=-2;x<=2;x++) { for(int y=-2;y<=2;y++) { dy[o[i]+x][p[i]+y]++; } } } int count=0; for(int a=3;a<n+3;a++)//黑暗数 { for(int b=3;b<n+3;b++) { if(dy[a][b]==0) count++; } } printf("%d",count); return 0; } ```
by wjw1948451261 @ 2024-01-29 23:30:28


|