题解
  • 板块P2105 K皇后
  • 楼主you0214
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/20 20:16
  • 上次更新2024/1/20 20:18:09
查看原帖
题解
1142582
you0214楼主2024/1/20 20:16

题解```cpp #include<bits/stdc++.h>

using namespace std;

int x[600],y[600]; int a,b,c; int flag[20010],q[20010],m,n; int main() { cin>>a>>b>>c; for(int i=1;i<=c;i++) cin>>x[i]>>y[i],q[x[i]]=1; for(int i=1;i<=a;i++) { if(q[i]) continue; m=b; for(int j=1;j<=c;j++) { if(flag[y[j]]!=i) m-=1; flag[y[j]]=i; if(x[j]<i) { if(y[j]+i-x[j]>=1&&y[j]+i-x[j]<=b) { if(flag[y[j]+i-x[j]]!=i) m-=1; flag[y[j]+i-x[j]]=i; } if(y[j]-i+x[j]>=1&&y[j]-i+x[j]<=b) { if(flag[y[j]-i+x[j]]!=i) m-=1; flag[y[j]-i+x[j]]=i; } } else { if(y[j]+(x[j]-i)>=1&&y[j]+(x[j]-i)<=b) { if(flag[y[j]+(x[j]-i)]!=i) m-=1; flag[y[j]+(x[j]-i)]=i; } if(y[j]-(x[j]-i)>=1&&y[j]-(x[j]-i)<=b) { if(flag[y[j]-(x[j]-i)]!=i) m-=1; flag[y[j]-(x[j]-i)]=i; } } } n+=m; } cout<<n; return 0; }

2024/1/20 20:16
加载中...