题目链接:点击打开链接
题意:我们把矩阵中的每条边的中点连起来,这样形成了一个新的矩形,请你计算一下这个新的矩形的覆盖的数字的和。
题解:模拟。把不在中点连接的点删去,然后统计和。当行数<51时i行的个数比i-1行多二。当行数>51时i行比i-1行少二。然后模拟过程。
结果:26020201
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 505;
int main(){
int a[maxn][maxn];
int num = 1;
memset(a,0,sizeof(a));
for(int i = 1; i <= 101 ; i ++){
for(int j = 1; j <= 101 ; j ++)
a[i][j] = num++;
}
int minn = 51;
int maxx = 51;
int flag = 0;
for(int i = 1 ; i <= 101 ; i ++){
for(int j = 1 ; j <= 101 ; j ++){
if(j > maxx || j < minn){
a[i][j] = 0;
}
}
if(i < 51){
minn --;
maxx ++;
}
else{
minn ++;
maxx --;
}
}
int res = 0;
for(int i = 0 ; i <= 101; i ++){
for(int j = 0 ; j <= 101 ; j ++){
res += a[i][j];
}
}
cout << res << endl;
}