2016.08.12【初中部 NOIP提高组 】模拟赛C

17 篇文章 0 订阅
16 篇文章 0 订阅

T1:

简单模拟.


只需建一个队列,头指针(head)指向1,尾指针(tail)指向k,每次头指针作为删除的数,然后把头指针以后的P个数放到队尾,并更新尾指针,以此类推,每次当是第n的倍数次删除时就记录一下,最后输出就行了.


T2:

DP.


因为这里只有n个格子,且仅有走和不走两种选择,很容易就可以想到设f[i,j]表示到第i个格子,走了j次的最优值.


也很容易推出状态转移方程——

当走第j次时不是t的倍数则状态转移如下:

f[i,j]:=max{f[i-1,j]-s[i],f[i-1,j-1]+s[i]}

当为倍数时则如下:

f[i,j]:=max{f[i-1,j]-s[i],f[i-1,j-1]+s[i]+b[i]}


边界就自己推推吧...


T3:

对于第一问很明显用二分.

第二问则可直接发现答案呈斐波那契状...再加高精度即可...


T4:

赤裸裸的并查集...


把边按照权值从小到大排好序之后,先是枚举从哪条边开始往下建图,再枚举现在建图用到了哪条边,则对于当前枚举到的边,判断其最老父亲是否相同,不同的话则把他们相连,再加上路径压缩,当连上第j条边时判断s到t是否能通,能通的话则直接判断答案是否需要更新,并直接Break...



总结:

这次第一、三题都在考场AC了,而第二题却因看题失误导致没有做出DP(我以为跳的次数必须得连续..)...真的太悲了,如果看懂题目,这道题就是一道很简单的DP......而第四题因为之前没学过并查集,所以没做出应该情有可原,而第二题这种看题失误以后一定不会再犯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值