• 考试总结10-08


    本次考试:

    第一题通过与李泽铎相同的办法想了出来:能拿钱的原因在于最左右两边的钱只算了一次,而中间的都算了两次.只要拿中间的补上就可以了,让那部分钱承担更多"责任".如果第一个拿走了x,那么以后偶数个都要加x,没有任何关系.但奇数位置都要减少x,如果减少到0就不满足题意了.而且如果n为偶数时最后一个位置的钱还要增加x,不得不把钱放回去.

    因此n为偶数时一定为0,否则取奇数的最小值-1.如果有1的话答案还是0.但是也没办法.

    第二题想了很久,刚开始以为n每一组都是50000,乘上个T=5000复杂度就很大,应该考虑贪心了,于是想了很久贪心策略还是想不出来.再看一遍数据发现n一共不超过500000,那么可以考虑n*logn带二分性质的算法了美滋滋.本题与lis类似,并根据之前想贪心的时候的推出来的各种性质写出了正解:a[i]=read()-i后对a[i]做最长的不小于零的不下降子序列,答案就是n-len.求lis的时候可以上一个二分,正好又复习了一遍二分的模板(复习的意思就是调了很久).

    第三题想到了是dp了,想到了一个自以为很对,复杂度也很优秀的算法,然后开始推转移,发现代码很难写,但是以为是正解,就继续敲了下去.于是最后发现是错的.再写另一个四重dp来不及了,只好水了一共dfs尝试30分,然后数组谜之开的很大,拿了零分.

    以后做题要仔细看好每一个条件,考虑出题人要考什么,我会写什么算法,在纸上推好后再开始敲代码.

  • 相关阅读:
    随机的爱
    在使用ASP.NET时进行页面重定向的3种方法。(转)
    [程序员必看]请不要做浮躁的人
    C# datetime 操作
    心碎的浪漫
    动网论坛 企业版

    内存映射文件(File Mapping)API
    内存映射文件
    已知进程句柄,如何知道此进程的主窗口句柄
  • 原文地址:https://www.cnblogs.com/qywyt/p/9757104.html
Copyright © 2020-2023  润新知