0%

2025“钉耙编程”中国大学生算法设计暑期联赛(1)——1006景区建设(诈骗题)

思路讲解

114x1x2+5141y1y2+919810axay114∣x_1−x_2∣+5141∣y_1−y_2∣+919810|a_x - a_y|

这个式子看着很唬人,其实还可以,不难发现

114100+5141100919810=394310114*100+5141*100-919810= -394310

所以说就不用考虑这个x,也不用考虑这个y,只需要考虑高度(即a)就可以了。

局部最高点也只需要这段代码(把旁边的四个格子扫一圈就行)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
FOR(i,1,N){
FOR(j,1,M){
// 已经布设了传送门
if(i==1 && j==1) continue;
bool isHi=true;
FOR(k,0,3){
ll x=i+dx[k],y=j+dy[k];
if(x<1 || x>N) continue;
if(y<1 || y>M) continue;
if(A[x][y]>A[i][j]){
isHi=false;
break;
}
}
if(isHi){
ans+=cs;
wp.EB(i,j);
}
}
}

AC代码

https://acm.hdu.edu.cn/contest/view-code?cid=1172&rid=19896

心路历程(WA,TLE,MLE……)