1 条题解
-
0
这题暴力枚举即可。
直接记录,左右是 ,上下是 ,左上到右下是 ,右上到左下是 ,注意可能站在对手的位置射击。
#include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=510,inf=1e9; int n,k,x,y,z,tot,ans; int row[maxn],col[maxn],lt[maxn],rt[maxn],map1[maxn][maxn]; inline int read() {//快读 int r=0;bool flag=true;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-') flag=false;ch=getchar();} while(ch>='0'&&ch<='9'){r=(r<<3)+(r<<1)+(ch^48);ch=getchar();} return flag==true?r:~r+1; } int main(void) { n=read(); k=read(); for(int i=1;i<=k;i++) { x=read(); y=read(); map1[x][y]++; row[x]++;col[y]++;lt[x-y+n]++;rt[x+y-1]++; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(row[i]+col[j]+lt[i-j+n]+rt[i+j-1]-3*map1[i][j]==k) ans++; printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 1448
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 73
- 已通过
- 22
- 上传者