zoukankan      html  css  js  c++  java
  • 华师菜鸟杯2020

    A

    考场模拟一天结果一看题解被暴力卡过去了

    把每个蚂蚁爬到原点的时间扔队列里排序,队首蚂蚁拿完后加上往返一次的时间扔到队尾模拟

    B

    分种类前缀和

    C

    打个表可以发现,数字递增规律约是等差数列递增,但是遇到平方数会停止增加

    [x=lfloorsqrt{n} floor\ sum=(1+2+…+n)-(1^2+2^2+…+x^2)\ sum=frac{(1+n)n}{2}-frac{x(x+1)(2x+1)}{6}\ ans=sum*6 ]

    D

    (4)格等于跳两个(2)格,所以奇数都能跳到,偶数都跳不到

    E

    白给

    F

    假设全(0)往里填(1),首先不会连着放,不然没用,徒增字典序

    所以除了题目给定的不能放(1)的位置,一个(1)的两侧也是不能放(1)的位置

    除了边缘,每放一个(1)都会增加两点贡献

    所以枚举最后一位放(1)或者不放(1),然后从右到左能放就放

    G

    一个炮塔两侧不满一整段的部分单独记录,只有(2*m)次操作

    中间部分线段树记录

    统计答案时找出数值最大的(k)段翻倍

    H

    反悔贪心,想到了没写出来

    观察数据范围,(n*sum u_i)只有(1e6),可以对每颗草单独处理

    开两个堆,一个存前面多出来的,另一个存前面空缺的

    以当前位置需要放入为例(val_i=min(a*i,c*|j-i|-val_j))

    其中(val_j)是曾经放入的多出的药草

    这里关于(c*|j-i|)的处理,可以在堆中放入(-val_j-c*j),取出时加上(c_i)

    I

    不会,(lyh)聚聚出的数学题太毒了太难了

    J

    从前向后枚举

    若是先见到大于当前位置的字符就直接挪过来,记录当前答案加之前挪动相等字符的答案

    若是见到等于当前位置的字符就将字符挪过来,在后面继续寻找大于的字符

    模拟题真是综合考研马力和清晰的思路

    K

    记录两个字符串相差多少个(H),再记录有多少位不同

    每次改变可以减少(1)个不同,每次交换可以改变(2)个不同

    先改变到(H)相等再交换

    L

    签到题,看清题目

  • 相关阅读:
    Python爬虫常用之HtmlParser
    Python异常基础
    python开头——文件声明 详解
    if __name__ == '__main__' 详解
    python基础提高演练(名片管理系统的开发)
    python函数基础
    python中的运算符归类
    python中的if判断语句
    python中变量命名的基本规则,标识符和关键字
    python中变量的基本使用
  • 原文地址:https://www.cnblogs.com/knife-rose/p/15371593.html
Copyright © 2011-2022 走看看