2020.12.03【NOIP提高B组】模拟 总结

2020.12.03【NOIP提高B组】模拟 总结

1.灵知的太阳信仰

这道题目我想到了 d p dp dp方法,发现贪心有问题?
f i , j f_{i,j} fi,j表示现在 j + 1 j+1 j+1 i i i是一段的答案。
然后 f i , j f_{i,j} fi,j有效仅当 j + 1 j+1 j+1 i i i的所有 p p p不相同。
可以预处理好 h i h_i hi表示 f i , j f_{i,j} fi,j有效 j j j的最小值。
然后就找到一个 k k k,从 f j , k f_{j,k} fj,k转移到 f i , j f_{i,j} fi,j
h i h_i hi优化循环次数,极端数据 n = 1000 n=1000 n=1000 p i = i p_i=i pi=i在1s之内可以跑完。
估计40pts。
果然40pts。
正解:
f i f_i fi表示以i结尾的段的答案。
预处理 g i g_i gi表示上一个相同质子的位置,可以用链表。
然后转移
f i = m i n j = g i i − 1 f j + m a x k = j + 1 i n k f_i=min_{j=g_i}^{i-1}{f_j+max_{k=j+1}^{i}{n_k}} fi=minj=gii1fj+maxk=j+1ink
用单调队列优化即可。
总结:
以后想问题不要太复杂。
然后要注重优化 d p dp dp
4种方法:
(1)单调队列
(2)斜率
(3)四边形不等式
(4)设置更好的状态

2.询问

这道题目用了一个神奇方法。
类似线段合并。
时间复杂度 O ( m 2 ) O(m^2) O(m2)
估计75pts(后面发现就16个测试点,就75%了)。
比赛时调了很久,发现是加入线段的问题。
结束后62.5分。
没有超时。
发现很多问题。
正解:
用并查集维护。
然后用类似合并的方法。
总结:
以后做题要考虑全面。
尽量像一些更优的数据结构去维护。

3.Star Way To Heaven

不会做,主要是没看懂题目。
为什么样例是 1.11803399 1.11803399 1.11803399
正解:
发现最小生成树最优,用 p r i m prim prim做最小生成树,建出来。
然后跑一个 d f s dfs dfs,就用 O ( n 2 ) O(n^2) O(n2)过了。
总结:
要多往别的角度想一想,不懂得话,就猜结论,结论其实认真想很明显。

4.God Knows

这题我用状压 d p dp dp
一开始用了 d p dp dp,发现有后效性。
然后就设 f i , j , k f_{i,j,k} fi,j,k表示第 i i i次选择 k k k状态为 j j j的答案。
然后暴力转移 O ( n 3 × 2 n ) O(n^3×2^n) O(n3×2n)
正解可能是 d p dp dp
细节好多,一个位运算先后级卡了我好久,一直错误。
估计20pts。
正解:
是最长极上升序列??
然后就 n 2 n^2 n2动态规划。
用线段树接近 O ( n ) O(n) O(n)
总结:
要仔细思考这道题哪种答案最优。

5.题外话

A组。
第一题打了暴力,没交,估计20分。
第二题变态没看懂。
第三题 n 3 m 3 n^3m^3 n3m3暴力只有5分。
第四题没看懂。

6.总结

这次最高就135pts。
以后得多想别的方法做题,不要死磕一种方法。
结束后122.5,rank1。
就是T2没有到预估分数,可能某一些情况没考虑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值