CQYZ#Second Exam Summary

引子:开学以来的第二次考试,可以说很不如人意。做完后本来自信满满,哪知得知成绩后却犹如被浇了一头能水,深深的挫败感……ε=(´ο`*)))唉,从哪跌倒从哪爬起,好好总结下这次考试吧。


拿到题,因为有了noip的经验,打上模板,调了调dev。待到题目下发,先把四道题浏览的一遍(当然,也仅限于浏览……),花了大概5min,然而Mr_He说要通读30min理清题意的,整场考试似乎从这里埋下了伏笔。
因为感觉四道题难度差不多,于是乎从T1做起。草草看了下题,大概明白了就是求在(1,n)之间跳一个数后的曼哈顿距离最大值。当时因为最近一直在学回溯的问题,双手下意识的打起了“void run(int t)”。现在想来,因为每次只需考虑跳一个点,因此共n-2种情况,一个循环遍历便可完成的事用搜索显然复杂了。而且写完run后看过了个样例就丢在一边没管了,这也是大忌啊。
T2是第二道选择做的题,读完题后在草稿纸上自己模拟了几遍,隐隐约约觉得要从后往前遍历,根据前后的速度关系划分队列数。然而还是吃了题目没理清变开始敲代码的亏,在敲判断的时候删来删去改了好久,又突然觉得貌似牛的位置关系没用上,自以为牛本身也是占一个位子的,于是乎又把题目复杂化了。一个20~30行的代码被我写到了60~70行,看见样例过了,就跳到了下一题。
T3看着有些麻烦,再看T4以前见过的,转向先做T4。读了一遍题,脑袋里有了枚举两个乘数,然后判断另外三个数是否合乎题意的大概模型。不过又被最近学的回溯纠缠,动手敲RUN(明明很简单的穷举就ok的……)。那天的那个bool check写的冗长复杂,初心是将五个数A、B、C、D、E都一块给判断了,后来看了Mr_He的代码这才豁然开朗。

函数的目的是提公因式——Mr_He

现在想来,那时的写法早已违背的函数的初衷,这是后话。而且那时对五个数中每一个数是否出现过我还将其分解输入到数组内判断,@_@晕了……下场就是最后写完后答案不对,盯了半天有发现不了哪错,只好倒回去做T3
做T3时心态已经有些慌了,也就没去想着时间复杂度这些,直接上手打暴力模拟。打暴力时是想着要优化用排序+二分查找的,然而那天查找一直有错。无奈下改成了数组顺序查找。评讲时猛然醒悟:查找对象和数组类型不一样!
(大概就是下面的错误)

struct info{
  int vis,w;    
}o[50005];
int x;
sort(o+1,o+1+n,cmp);
int p=lower_bound(o+1,o+1+n,i,cmp);//x是int型,o是info型

【总结】

  1. 做题习惯不好,审题时间过短,题意未理解透便开始敲代码,导致途中细节没想清脑袋一片糊涂代码过于混乱
  2. 平时一些小细节没注意,导致考场出错时不能及时发现
  3. 一道题做完后没有做到静态阅读一遍,心态急着去做下一道
  4. 对于大犇的代码阅读过少,代码风格自成一派,导致查错困难

Mr.Shadow from CQYZ
2017.12.9

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值