2021/10/28模拟赛

考场上

大概看了 10 m i n 10min 10min 的题, 然后到 8 : 40 8:40 8:40 的时候写了个 T 2 T2 T2 的二进制枚举状态的暴力,不失误的话是 40 40 40 分。有点像【费解的开关】,只是把二维平面放到了树上,但是依然满足一些性质,所以比较好水

顺序的先后无所谓
不会重复按一个开关

然后开始搞 T 1 T1 T1
想了 10 m i n 10min 10min 的贪心,只以价值为第一关键词,但是感觉会被各种卡死,又想以区间大小为关键词,有的区间会很大的话,往后面的每次枚举都会造成很大影响。很快就排除掉。
9 : 10 9:10 9:10 的时候想到了另一个思路的贪心,以区间左端点为第一关键词,然后扫一遍,但是每次如果不满足的话需要回溯,而且还是以价值来判断要啥,叠起来的话又需要需要判断要哪个,可能 我现在要了第 i i i 个,然后到第 j j j 个的时候不影响第 j − 1 j - 1 j1 个去吃,但是右端点所能覆盖的区域可能会吃掉第 i i i 个右边能吃的 ( i < j ) (i < j) (i<j)
在这里插入图片描述
所以 9 : 20 9:20 9:20 的时候卡壳了,
9 : 30 9:30 9:30 觉得可能可以搬到图上做拓扑,推到 9 : 40 9:40 9:40 感觉也会被卡,但还是写了,
10 10 10 点写完了拓扑上的贪心,但是过不了样例,开始打表查错
10 : 10 10:10 10:10 发现自己没有调用拓扑的函数,我是dsb,调用后就能骗过样例了
按一定顺序枚举不管用的时候我就想到了用动态规划,但是既然没有顺序就应该不是线性的,然后奶牛是一个一个的区间,所以又想到 区间DP,用二维的 f [ i ] [ j ] f[i][j] f[i][j] 表示从 i i i 点到 j j j 点的贡献搞不出来,区间一层一层叠加跟个染色的过程一样,不知道每次的状态咋转移,然后放弃

11 11 11 点的时候打出来了 T 4 T4 T4 的特殊数据 20 20 20
如果只有一个点的度数大于 2 2 2 的话,就把它当做根节点搞,求出每个儿子的 size 值就是这个对应的儿子的链的长度了,根有奇数个儿子的话就把最大的放一边,然后次大的和最小的连起来当一根链,次小的和次次大的一起,以此类推。偶数的话就最大和最小,次大和次小,以此类推。
对于除了特殊数据的分怎么打,思维上卡到了这里
在这里插入图片描述
不知道该选择哪条路径,如何判断

最后一点时间写个 T 3 T3 T3 O ( 3 N ) O(3^N) O(3N)dfs 枚举每个方格放苜蓿洒水器或者甜玉米洒水器或者啥也不放,最后再验证是否可行,水 20 20 20 分。

11 : 50 11:50 11:50 检查了遍 freopen 11 : 55 11:55 11:55 的开始写总结


复盘

算是稳扎稳打了吧,简单的分都拿到了,前三道题看出来是动态规划了,但是不会写。
T 1 T1 T1 比较鸡肋的是看出是区间 DP 也不会。
T 4 T4 T4 二分想到了,也想过直接用动态规划写,但是没有想到两者结合起来用动态规划验证二分。
仔细想想的话节奏还是不太好,应该所有暴力都打完了再考虑中档分或者正解,这会算是没有在调代码上浪费太多时间才勉强写了三个题的暴力。

很难受的是花费精力最多的 T 1 T1 T1 没有分。

部分分拿满了,但是相较而言思维上的运动不够,思考的深度不够,比如最后的排名,有两位大佬 A A A 了题,就直接在我头上了,所以是要有 A A A 题的梦想。

早上刘老师说的话还是很对的,要么思维跟上能 A A A 题,要么不出错暴力打满。(我这样的菜鸡还是做后者吧

中午 jkh 大佬给我说他 T 1 T1 T1 想到的是最大生成树,只是听着有点像我拓扑的那个做法,但是我不太理解。


看题解后

T 1 T1 T1 的话没有想到先用个三维的数组f[i][j][k]预处理出来在第 i i i 个还没吃掉时,区间[j ,k]中最大的价值。感觉难点主要就是在这里吧,处理完这个后的状态转移方程还是很常规的
f [ i ] [ j ] = m a x ( f [ i ] [ j ] , f [ i ] [ k − 1 ] + f [ k + 1 ] [ j ] + 某 东 西 ) f[i][j] = max(f[i][j] ,f[i][k-1]+f[k+1][j]+某东西) f[i][j]=max(f[i][j],f[i][k1]+f[k+1][j]+西)

T 2 T2 T2 想到的那个类似的题虽然是状态压缩,但是这个题我从头到尾竟然没有往状态压缩上想,以为是个奇怪的树上DP,而且数据范围的n<=40让我更没去往装压上想。
题解上说用 map 来存到达每个状态的最少操作后,但是我不会折半搜索,所以也没有从n<=40上想到用折半搜索只处理一半。 而且想不到这时候是用异或的方式存某一位是否更改了。

T 3 T3 T3 考场上想到的动态规划是在一整个平面上自上而下自左而右,看f[i][j][k](第i行第j列,k表示放什么或不放东西),像递归求组合那样,但是又不知道该怎么判断是中间过程否合法,以及最后结果是否合法。题解中的方法肥肠巧妙,f[i][j][0/1]在第i行第j列时从上一个点到这一个点是上下的还是左右的,有拐角的地方必放喷洒器,其他的话就跟乘法原理一样乘个 2 n 2^n 2n ,就行。
如果从(1,1)走到(n,n)划分个界线,不管怎么走,折线的地方是必放的,这个性质很明显,但是考试的时候太随意了,没往这边想,要是能想到的话,就也该很轻易想到剩下的点是 2 n 2^n 2n,每个点放原本就覆盖该区域的东西或者啥也不放。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值