第十一届蓝桥杯
B 扩散
首先考虑到bfs,但最终选择建立矩阵图、逐个染色+扫描,因为这相对前者省空间且易实现。
ans:20312088
1 #include<bits/stdc++.h> 2 #define N 10000 3 using namespace std; 4 bool flg[N][N]; 5 long long ans; 6 int a[4][2]={2020,2020, 7 4040,2031, 8 2031,2034, 9 4020,4020}; 10 11 void work(int x,int y){ 12 for(int i=0;i<=2020;i++) 13 for(int j=2020-i;j>=0;j--){ 14 flg[x+i][y+j]=1; 15 flg[x-i][y+j]=1; 16 flg[x+i][y-j]=1; 17 flg[x-i][y-j]=1; 18 } 19 } 20 21 int main(){ 22 for(int i=0;i<4;i++) 23 work(a[i][0],a[i][1]); 24 for(int i=0;i<=6060;i++) 25 for(int j=0;j<=6060;j++) 26 if(flg[i][j]) 27 ans++; 28 cout<<ans; 29 return 0; 30 }