20260307 模拟测 总结

Preface

???我觉得 T3 比 T4 简单啊,为啥过 T4 的人更多哦哦哦。

好在是 AK 了 /oh

T1

估分 得分 挂分
\(100\) \(100\) \(0\)

水题,不难发现如果原数字 \(n\) 本来就是一个质数,那么答案为 \(0\),否则一定只需要一次操作就可以把 \(n\) 变成质数。于是 \(O(\sqrt{n})\) 判一下质数就做完了。

T2

估分 得分 挂分
\(100\) \(100\) \(0\)

维护数组 \(a\) 所对应的桶 \(t\),具体地,\(t_x\) 表示存在多少个不同的 \(i\) 使得 \(a_i = x\)。定义 \(m_i = \min_{1 \le j \le i} \{ t_j \}\),不难发现答案就是 \(\sum \{m\}\)。

T3

估分 得分 挂分
\(100\) \(100\) \(0\)

考虑把数组拆成 \([1,pos]\) 和 \([pos,n]\) 两段,对每段分别 \(O(n \log n)\) 求出其最长不下降(不上升)子序列长度,然后用 \(n+1\) 减去即可得到答案。

但是这两段有一个重合部分,也就是 \(pos\),怎么处理?分讨 \(pos\) 是否修改即可,若要修改则将 \(a'_{pos} = \infty\),这样一定是最优策略。

T4

估分 得分 挂分
\(100\) \(100\) \(0\)

谁懂我想了一个世纪的贪心然后会 \(O(n)\) 了准备写代码一看数据范围发现 \(n\) 只有 \(1000\) 直接平方做 DP 就行了的救赎感。。。

定义 \(dp_{i,j,0/1}\) 表示当第一只青蛙跳到了它的第 \(i\) 个石头,第二只青蛙跳到了它的第 \(j\) 个石头,并且助跳器目前在哪只青蛙手里,时的最少的传递助跳器的次数。初始化 \(dp_{0,0,0} = 0\),最终答案就是 \(\min(dp_{n,n,0},dp_{n,n,1})\)。

转移比较复杂,主要是情况数比较多,限制条件(\(m,k,q\))也不少,注意不要漏了或重了。

贴一下本人 DP 部分的代码,写的比较史。

memset(dp,0x3f,sizeof(dp));dp[0][0][0]=0;
for(int i=0;i<=n;i++)for(int j=0;j<=n;j++){
    if(i)dp[i][j][0]=min(dp[i][j][0],dp[i-1][j][0]);
    if(j)if(b[j]-b[j-1]<=m)
        dp[i][j][0]=min(dp[i][j][0],dp[i][j-1][0]);
    if(i)if((abs(b[j]-a[i-1])<=q)||(abs(b[j]-a[i])<=q&&a[i]-a[i-1]<=m))
        dp[i][j][0]=min(dp[i][j][0],dp[i-1][j][1]+1);
    if(j)if((abs(a[i]-b[j])<=q)||(abs(a[i]-b[j-1])<=q&&b[j]-b[j-1]<=m))
        dp[i][j][0]=min(dp[i][j][0],dp[i][j-1][1]+1);
    if(i)if(a[i]-a[i-1]<=m)
        dp[i][j][1]=min(dp[i][j][1],dp[i-1][j][1]);
    if(j)dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][1]);
    if(i)if((abs(a[i]-b[j])<=q)||(abs(a[i-1]-b[j])<=q&&a[i]-a[i-1]<=m))
        dp[i][j][1]=min(dp[i][j][1],dp[i-1][j][0]+1);
    if(j)if((abs(a[i]-b[j-1])<=q)||(abs(b[j]-a[i])<=q&&b[j]-b[j-1]<=m))
        dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][0]+1);
    if(abs(a[i]-b[j])<=q)
        dp[i][j][0]=min(dp[i][j][0],dp[i][j][1]+1),
        dp[i][j][1]=min(dp[i][j][1],dp[i][j][0]+1);
}cout<<min(dp[n][n][0],dp[n][n][1])<<"\n";

Summary

还算是比较简单的一场吧。AK 了也挺开心的 /cy

继续加油喵 > < qwq

posted @ 2026-03-08 19:16  嘎嘎喵  阅读(36)  评论(0)    收藏  举报