NOIP提高组 2015.11.04总结

本次比赛难度适中,通过观察数据规模采取不同策略:第一题利用搜索解决;第二题发现直接交换最大值存在局限性;第三题借鉴过往经验;第四题借助数学图像简化计算;第五题巧妙使用L边构建最小生成树;第六题通过二进制表示和剪枝提高搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天的比赛难度并不大。分数也挺好看的。
第一题的话,一看n好大,但是m只有100,那就直接上搜索就行了。
第二题,要让交换k次之后的序列最大,我的第一反应是把最大的交换到较高的位置,但是我手动算了几个数据之后,发现这种算法有bug,因为k有可能不满足交换到想要的位置。
第三题,看完题后发现在暑假的时候做过类似的题目,那题还要难一些,根据那题的思路,这道题也迎刃而解。
比赛结束还看了看后面三题,第四题,要求,y=k/x下方的整点,由于图像关于,y=x对称,所以只要找出前sqrt(n)的位置有多少个整点,乘二再去重就行了,数学图像在比赛中也可以成为解题的工具。
第五题,要用到n-2条王牌边,1条李牌边使得图构成一个最小生成树,我最开始认为,要枚举选哪条李牌边,这样就要做L次最小生成树,但是并不是这样,我可用王牌边做最小生成树,然后每次枚举选哪一条L边时,直接让L边的两个点跳到他们的lca,记录最大边。
第六题,虽然数据很小,但是,我没想到怎么做。Cost_i<=50那么二进制六位可以表示0~63的整数,所以,答案最多只有6。这样搜索就可了。搜索中要尽量加剪枝,因为我永远不知道搜索可以跑多快,好像这道题,算时间复杂度要大概100秒,但是我加了剪枝之后1秒就跑完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值