zoukankan      html  css  js  c++  java
  • 考试总结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分,然后数组谜之开的很大,拿了零分.

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

  • 相关阅读:
    Pycharm简单使用教程
    【Jenkins学习】【第二节】 jenkins构建触发器定时任务
    Docker之从零开始制作docker镜像
    手机APP自动化环境搭建
    格式字符详解
    Bash Shell之内建命令和保留字
    asp.net 实现后台异步处理的方式
    Spring3.2.0 之后各个版本完整包下载地址
    Oracle的rollup、cube、grouping sets函数
    C# 委托类型及使用
  • 原文地址:https://www.cnblogs.com/qywyt/p/9757104.html
Copyright © 2011-2022 走看看