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道题中,这道题是给我收获最大的,而这道题也是唯一一道让我收获了更好思路的题目。

  • 相关阅读:
    sql server 修改/查看 主键初始值
    国内外邮箱正则验证及js示例
    修改表中主键 标识/初始值
    主角场景Shader效果:遮挡透明
    主角场景效果:人物阴影
    主角场景Shader效果:描边
    主角场景Shader效果:光影
    Unity ZTest深度测试 & ZWrite深度写入
    天气系统:雨、雪
    UnityShader 序列帧动画效果
  • 原文地址:https://www.cnblogs.com/wangximing/p/11192021.html
Copyright © 2011-2022 走看看