2024.11.25 NOIP2024模拟赛
挂了若干分。
赛时
T1
赛时开了 \(T1\),最开始都没有往正解去想,当时想着 $ \Delta y $ 是可以枚举的范围,于是我就先枚举了公差,之后再把处于同一个系中的数绑一块,然后我加了个所谓的 \(n^2\) 优化,但其实根本没用,应为肯定会覆盖 \([0,(m-1)/(n-1)]\),可以省掉一个 \(n^2\)。然后(没删反向优化),我把 \(nm\) 的部分优化成了 \(m\),然后一看时间过了一个小时,然后就润了。
其实当时我没判断上界,所以暴力分一分没拿,挂了 \(50pts\)。
T2
当时慌了,先写了 \(T3\),写了个逆天的代码又耗了我 \(2h\),\(T4\) 的线段树又写了我 \(1h\),见到 \(T2\) 时只剩下了 \(5min\),连最低档的暴力多打不出来,急了,写了给显然没分的全排列做法,只能说自己的码力还需提高,不像\(隔_H壁_t某_h位_n大_t佬_d\),五分钟一颗线段树。
T3
首先一眼 \(dp\),这也是我先写它的原因,首先感觉显然有一个性质是我要尽可能得多跳,这个是 \(dp\),但转移为 \(O(n^2)\),然后我又写了个反向优化,自认为较对的转移,如下。
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
// if(!flag[i][j])continue;
// if(dp[pre[i][j].x1][pre[i][j].y1]>dp[pre[i][j].x2][pre[i][j].y2]){
// fa[i][j].x=pre[i][j].x1;
// fa[i][j].y=pre[i][j].y1;
// dp[i][j]=dp[pre[i][j].x1][pre[i][j].y1]+1;
// dis[i][j]=dis[pre[i][j].x1][pre[i][j].y1]+(i-pre[i][j].x1)*(i-pre[i][j].x1)+(j-pre[i][j].y1)*(j-pre[i][j].y1);
// }
// else{
// if(dp[pre[i][j].x1][pre[i][j].y1]<dp[pre[i][j].x2][pre[i][j].y2]){
// fa[i][j].x=pre[i][j].x2;
// fa[i][j].y=pre[i][j].y2;
// dp[i][j]=dp[pre[i][j].x2][pre[i][j].y2]+1;
// dis[i][j]=dis[pre[i][j].x2][pre[i][j].y2]+(i-pre[i][j].x2)*(i-pre[i][j].x2)+(j-pre[i][j].y2)*(j-pre[i][j].y2);
// }
// else{
if(dis[pre[i][j].x1][pre[i][j].y1]+(i-pre[i][j].x1)*(i-pre[i][j].x1)+(j-pre[i][j].y1)*(j-pre[i][j].y1)<dis[pre[i][j].x2][pre[i][j].y2]+(i-pre[i][j].x2)*(i-pre[i][j].x2)+(j-pre[i][j].y2)*(j-pre[i][j].y2)){
fa[i][j].x=pre[i][j].x1;
fa[i][j].y=pre[i][j].y1;
dp[i][j]=dp[pre[i][j].x1][pre[i][j].y1]+1;
dis[i][j]=minn[i-1][j-1]+(i-pre[i][j].x1)*(i-pre[i][j].x1)+(j-pre[i][j].y1)*(j-pre[i][j].y1);
}
else{
fa[i][j].x=pre[i][j].x2;
fa[i][j].y=pre[i][j].y2;
dp[i][j]=dp[pre[i][j].x2][pre[i][j].y2]+1;
dis[i][j]=dis[pre[i][j].x2][pre[i][j].y2]+(i-pre[i][j].x2)*(i-pre[i][j].x2)+(j-pre[i][j].y2)*(j-pre[i][j].y2);
}
// }
// }
}
}
但它假了,\(RE\)了,不太理解。
\(upd \ \ on:2024.11.25\)
当时赛时想到了一个可以做 \(O(n^3)\) 的一个性质,我是期望跳得步数尽量多,然后把它转移到平面直角坐标系上,尽可能从右或上转移,但是不一定最靠右或最靠上才最小,只能说自己时间规划不合理,不要死磕题目。
T4
线段树常数太大了,直接 \(T\) 飞了。
总结
- 不要太过自信,加上一堆反向优化。
- 要注意常数的问题。
- 注意好自己的时间规划,不要上头一道题写 \(2h\)。
- 不要死磕正解,想出来的假正解可能还没暴力分高。
- 一定要对拍!!!

浙公网安备 33010602011771号