zoukankan      html  css  js  c++  java
  • 2019.7.15刷题统计

    以后几天主要刷入门组原来不会的题。

    第一题:1036

    原来代码:

    可以看出红框里的代码全部没有审清题意。

    今天看了dgc的代码,发现循环只需要从3循环到n-1,而且根本没必要把上车人数、下车人数、当前人数全部记录下来,更不需要编写一个函数做这项工作。

    后来我再提交的时候错误一个点,最后发现b的循环需要从0开始。

    今天发现入门组的题目都没有我想的那么复杂,看问题有时需要看简单一点儿,这样可以使思路更明确,做题速度也会加快。

    同时做题提交后发现错误时,应该再读一遍题目,并改进代码,绝对不能放弃。

    AC代码:

    第二题:1041

    原来代码:

    这道题可以说是递归中最简单的题目之一了,但是当时还是错了。当时有两处思路错误:

    ①既然每个状态只与前一个状态有关,而且用过一遍以后再也不会用了,就只需要用一个变量记录上一个状态,不需要开数组,浪费了空间(这并不主要)

    ②循环边界条件有误:第一个循环应该是for(int i=1; i<=n-p; i++),第二个则应该是for(int i=n-p+1; i<=n; i++)。造成这个错误的原因是没有看清题目:“有m刀没有经过中间点”被我看成了“有m刀经过中间点”。

    看了lijunhui的代码才发现自己犯了这样可笑的错误。

    AC代码:

    另一种以公式形式解的AC代码:

    其中核心语句中2*(n-m)指经过中间点的切法分成的份数,再加上(2*n-m+1)*m/2,也就是从n开始倒着往后数m个数的和(即不经过中间点的切法每刀能够形成的交点数之和,与高斯求和差不多)。

    第三题(也是最后一题):1042

    原来代码:

    像这样的暴力解法,时间超限也是正常的。

    这道题本身有一定难度,看了sunxiyue的代码后,刚开始没理解,考虑了几分钟之后才发现每行代码的意思,这么高深、快捷、实用的代码我是想不出来的。

    后来因为这份代码里有许多细节问题,所以提交了好几次都没能通过,不过最后还是自己写对了。

    AC代码:

    在今天完成的3道题中,这道题是给我收获最大的,而这道题也是唯一一道让我收获了更好思路的题目。

  • 相关阅读:
    用js完成毫秒格式数据的日期格式化任务
    廖雪峰js教程笔记3
    事务在 更新和 插入中的用法(转自他人)
    左连接 用于 列转行的一个想法
    MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
    python中的内方法
    波非那切数列
    python修改最大递归数
    odoo开发微信小程序需要的三个包:xmltodict、pycrypto、itsdangerous
    解决json dumps不能序列化datatime数据类型的问题,通过重写JSONEncoder
  • 原文地址:https://www.cnblogs.com/wangximing/p/11192021.html
Copyright © 2011-2022 走看看