2020.06.06【NOIP普及组】模拟赛C组37 总结

2020.06.06 2020.06.06 2020.06.06 N O I P NOIP NOIP普及组】模拟赛 C C C 37 37 37 总结

这次比赛我考了 300 300 300分,第一题没有考虑到一个地方,第三题不知道为什么有一个数据点时间超限。

第一题:打牌

解题方法

这道题的方法是贪心。
我们在第一次出一个最小的牌,然后每一次按规则出牌,当不能出了就出一个最小的。

得分情况

比赛时 16.7 16.7 16.7分。

第二题:寻找星座

解题方法

这道题的方法是暴力。
我们选取一个标准进行尝试就行了,每一次看一看这个标准和是否满足其他的星座,如果符合就输出。

得分情况

比赛时满分。

第三题:烤饼干

解题方法

暴力 d f s dfs dfs

每一次 d f s dfs dfs当前行是否需要翻转,如果需要就翻转,然后把全部行都枚举过之后,贪心每一列 0 0 0 1 1 1的个数最大的值并累加进答案,最后与原来的答案取一个最大值就行了。
时间复杂度为 O ( 2 n m ) O(2^nm) O(2nm),可以过。

状压 d p dp dp

不懂。

得分情况

比赛时 83.3 83.3 83.3分。

第四题:坐船旅行

解题方法

这道题的方法是变版 f l o y d floyd floyd或者 s p f a spfa spfa

f l o y d floyd floyd

每一次我们发现需要是更改的话就直接将以 a , b a,b a,b为中间点的长度更新。
也就是
f i , j = min ⁡ i = 1 n min ⁡ j = 1 n f i , a + f a , b + f b , j \begin{aligned}f_{i,j}=\min_{i=1}^{n}{\min_{j=1}^{n}{f_{i,a}+f_{a,b}+f_{b,j}}}\end{aligned} fi,j=i=1minnj=1minnfi,a+fa,b+fb,j
注意每一次要更新 f i , j , f j , i f_{i,j},f_{j,i} fi,j,fj,i
因为可能没有更新到。
时间复杂度为 O ( k n 2 ) O(kn^2) O(kn2)

s p f a spfa spfa

直接每一次做一遍 s p f a spfa spfa就可以了。

得分情况

比赛时满分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值