其他分享
首页 > 其他分享> > 8.10模拟:贪心、最优化思路

8.10模拟:贪心、最优化思路

作者:互联网

文章目录

前言

305分
今天考得还算不错!awa
(冷静,明天数据结构还是要先写暴力)
因为数据结构的题就是为了暴力而生的啊awa
还是有不少问题

最大的收获:

sort的cmp函数不能带等!
之前一直不知道,感谢集训队学长一语打破迷津!
这个出错似乎是不一定的(但要是挂在正式考场上就…
所以弥补这个盲区真的很有用啊!
顺道写一下sort比较函数的三个要求:

  1. 反自反性:自己和自己比永远须return false
    cmp(a, a) === false
  2. 非对称性:a>b和b>a只能有其一
    cmp(a, b) == true ==> cmp(b, a) == false
  3. 传递性:a>b,b>c,则a>c
    cmp(a, b) == true && cmp(b, c) == true ==> cmp(a, c) == true

下面进入正题吧

考场

流程

开考第一件事:先看题目!
大致扫了一遍题,觉得T2、3应该可做
T1一开始看觉得好像挺复杂,其实就是字多,是最水的题
(事实证明,T1大概率都是难度最低的题)
T4我做好了写暴力的心理准备
但是写起来就极度之顺
代码的bug都很少
T4也很快的想到了正解的思路
最后10点就做完了4道题…
然后就开始漫长的《检查之路》
T1检查到了一个审题的bug(尽管已经读了三遍题。。。)
T2一开始cmp忘记引用了
…还好都看出来了吧

T1 alignment

这题真是有些过水了。。。
就拿链表随便连连跳一跳取个min就可以了
甚至不需要倍长序列,首尾链表接一起就行;
我一开始想的有点多了

T2 flower

写挂了,只有20分… qwq
看起来先选m大的花种是一个及其有道理的贪心策略
(更何况本次还是贪心专题)
但是这个策略是错的
大神学长说是可以卡掉的(可不是吗,八个数据点全能卡掉…)
所以应该状压dp
有一个很重要的技巧是从晚到早进行转移
因为这样每朵花需要撑住的时间就固定了

T3 reformat

本题数据点很有提示性,按时我们按格式化前后内存差分别讨论
正价值按格式化前的v升序排很好理解也很好证
关键是负价值的部分
我的方法是类似于国王游戏的相邻换位法(然后sort就因为手贱的一个<=卡掉了15pts)
题解的做法按格式化后的内存降序排,因为后半部分的操作和前半部分是对称的
但我还是不太明白…
越想越感觉它不是对称的了
《玄学》
明天有时间问问学长吧awa

T4 inverse

确实挺难的
但我抱着尝试的心态做的时候却出乎意料的顺
就是一个逆序对和trie数的结合
利用异或性质,常规的在插入元素分叉时记录分叉树的size
分0和1讨论其贡献即可

复盘

今天可以早睡了
(热 泪 盈 眶)

T2 flower

看到题解思路用状压后实现就不难了

T3 reformat

把等号删去,试了一下,是可以切的
所以我的策略也不错啦awa

T4 inverse

和qyt讨论了一下trie树的结点上限
结论:玄…
就按最大的位数*点数吧…

总结

第一题(自认为)很容易的切掉了,然后心里踏实了,状态越做越好
所以还是一句话:不要慌,来得及

但是最后检查的2个小时效率还是不高…
应该可以写个datemaker和checker自己测一测的
反正干瞅也是干瞅,干嘛不呢

数据结构,明天加油!awa

标签:inverse,最优化,T2,T1,贪心,true,8.10,awa,cmp
来源: https://blog.csdn.net/BUG_Creater_jie/article/details/119579148