华为杯总结
概述
- 这次题目总体来说感觉比较水,但是单刷难免会出现各种奇葩情况。
- 为了多抢点钱,也是没有办法的事情。好在当前情况还在可控范围内。
- 虽然被坑题给坑死了,但是整体来说这次代码写的还是很稳定的。
A题
- 上来第一道题就是我最擅长的模拟,但是这次很可惜阴沟里翻船了。
- 题目本身就描述不清,再加上坑爹的思维定势,看到样例都是大写16进制,就以为后台也是这样。
- 结果在这里卡了差不多两个小时,最后还是没过。就那么一遍一遍想自己到底哪个细节没有考虑到!
- 比赛结束后到后台看样例,尼玛就那么几行啊!!!就TMD错在没有想到有小写字母上了啊!!!
- 而且我记得做题的时候还犹豫了一下是不是要处理一下小写,但是不知道为什么居然会奇葩地懒得写了。
- 赛后回想一下,在这种不计罚时的比赛里面,我知道那么多手段可以试探后台数据,TMD就是没想到去试试。
- 唉,实在是郁闷死了!
B题
- 先做的是这道题,之前训练赛搞过一道类似的更复杂的,所以直接1A砍下。
C题
- 感觉上这题应该有比较快的写法,但是想不出来(贪心的话不会证明正确性)。
- 所以直接上了个背包试图装满一半的容量,糙快猛无压力。
- 装不满的话直接遍历一遍最小差值就可以了,时间复杂度应该没问题。
- 第一次交的太早了没有注意输出的时候有笔误,要不然应该就能1A。
D题
E题
- 本来在搞D题,想不出来状态转移方程,看这题有人过了,于是就开始想。
- 这应该是对于每只兔子,查询速度比它快但是位置比它早的乌龟的数量,求和就可以。
- 看一下数据规模,显然查询得是logn的复杂度,线段树无误,尼玛没带模版。
- 后来看了一下正确的提交,用的是C语言,十有八九是大一的。
- 但是线段树当场写的话我都写不好大一的怎么可能搞出来,于是明白了——数…据…弱!!!
- 直接排序后枚举,糙快猛搞定,不算那个意外编译错误的话1A拿下。
- 另外看来容器的begin、end方法返回的迭代器是带有const属性的,排序函数得注意一下类型匹配。
- 不然的话像g++这样类型检查比较严格的编译器对此就会报错……