[暑假集训] jzoj 2016.7.16 noip模拟赛B 总结

倒数第三场 今天的题终于不再是全水题了
首先蒟蒻总结 照例%%%一波
这里写图片描述

第一题

模型很眼熟(shu),好像是前几天搞过的 记得是二分答案
很简单

第二题

看题面,哇咧水DP 又是一道送分题

再看数据规模
  对于30%的数据,1<=n<=20,且测试点中只有一组数据;
  另外40%的数据,1<=n<=1000。
  对100%的数据,1<=n<=100000,0<=L,Ai<=10^9。
我屮艸芔茻,10^6次方,不怎么可做啊

第三题

 给定1到N的一个排列,再给定一些允许的交换方法,要求用最少的交换次数把该排列变为1,2,3,,,N。

如果不给交换方法那就是一题逆序对大水题
好像没什么想法,DP贪心都显然不可做**
直到我看到数据范围
N(1<=N<=12)和M(1<=M<=N*(N-1)/2),

12的话不是压位就是搜索 然后..
mdzz这不就是迭代加深搜索吗

第四题

树,然后求一条嚒嚒虫
一开始想打树链剖分成线段树,给他的父亲区间标记再查询最大值,愣了5分钟有发现其实有更简的做法
对于一个点X,他的儿子a b c,那么对于X这颗子树来说有三种情况
1. 这条毛毛虫在某一颗子树里
2. 这条毛毛虫再某两颗子树里
3. 这条毛毛虫的一端在x这颗子树里,且通过x连向其他子树
4. 毛毛虫和这颗子树没关系

这就很简单了,其实只需要考虑第3种与第2种
这样的话对于X我们记录一下子树的最大与次大,考虑一下第二种情况然后把最大当做这颗子树的f传回去就可以了

美其名曰树形DP 其实就是一个大贪心

看起来能切1 4题

9:30

第一题打到一半发现,二分剪枝几乎无用
连忙换方法, 当我们确定最小边为X的时候我们去求其下界为X的最小生成树即可
,这样N=100就直接NM过了

第三题想到一个玄学优化
这里写图片描述
看起来优化效果很不错,本来只能过ans=6的,加了能过ans=8

搞完第三题已经十点半了,连忙开打
打到11:20就好了,再调了一波样例和大数据 再读几遍程序就丢在一边了

搞第四题的时候infleaking猛然发现第三题是双向BFS 这时候还剩40分钟,于是他就开始敲了..
以我的debug速度敲完是不可能的了,还是相信我的迭代加深+玄学优化吧

再回过头搞第二题
发现其实DP的时空复杂度与l无关 都是n^2的, 然后又发现
  对于30%的数据,1<=n<=20,且测试点中只有一组数据;
  另外40%的数据,1<=n<=1000。
另外40!!! 也就是说dp有70分!!!
很好连忙开打
打剩5分钟好了,调一波样例对了就交了

结果 估分
240 270+???
100 100
20 70
80 ??? 玄学
40 100

第一题 不出意外的切了 (这句话好耳熟)
第二题 什么情况? 至今没搞懂 可能是因为没拍大数据…
第三题 很爽 只T了两个点 玄学剪枝给我多get到了40分,看来多想想还是很值的
infleaking的双向BFS居然结束前30s调完了!
WA一个点 T一个点,不过是hash表的问题, 于是我还是要再打一遍双线bfs.. 这很不科学

第四题 是边集数组又忘开两倍了! ************* 这还是自己的锅不能怪C++… 下次如果能出极限数据就出一个试试看吧
好玩的是第一题除了我和waterking 居然所有人都忘了输出-1 , 于是就这种剧情
这里写图片描述 只有我们两个切了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值