zoukankan      html  css  js  c++  java
  • Google Kick Start 2020 Round C

    ac代码

    A. Countdown

    for循环跑一跑,没啥好说的。

    B. Stable Wall

    如果(s_{i,j} e s_{i+1,j}),那么说明(s_{i+1,j})必须在(s_{i,j})之前先放,对于这种优先级关系很自然的就能想到拓扑排序。然后建图拓扑排序跑一跑就完事了。

    C. Perfect Subarray

    这题直接暴力。首先记录前缀和。对于以(i)开始的子段,枚举所有的完全平方数(sq),符合条件的子段数等于满足(sum_j = sum_{i-1} + sq, j in [i, n])(j)的个数。用一个桶存放(sum_i)出现的次数,然后暴力跑就可以在(O(nsqrt{10^7}))的时间内解决本题。

    D. Candies

    将序列(a)按下标的奇偶分为两个,分别用两个线段树(T_1)(T_2)维护,主要维护(a_i imes i)的区间和以及(a_i)的区间和。

    修改和普通的线段树一样,这里不再赘述。

    然后就是回答询问了,对于询问((l,r)),将其划分为两类:左端点为奇数和左端点为偶数。

    对于左端点为奇数的询问,我们可以通过(T_1)获取(a_i imes i)([l,r])的区间和,然后减去((l-1))(a_i)([l,r])的区间和,就是答案中加上去的部分;通过(T_2)获取(a_i imes i)([l+1, r])的区间和,然后减去((l-1))(a_i)([l+1,r])的区间和,就是答案中减去的部分。

    左端点为偶数的也差不多,奇数的改改就可以了。

    总结

    这场题目都是一眼题,就是C题因为犯了低级失误导致交了5发才过,不然我应该可以做到50minAK。

  • 相关阅读:
    转载:iOS开发的22个奇谲巧技
    解决pathForResource返回nil, 无法读取plist文件问题
    小项目三:登陆窗口
    小项目一: UIButton的使用
    转载:iOS 8 自适应 Cell
    转载:iOS 8 AutoLayout与Size Class自悟
    转载:总结iOS 8和Xcode 6的各种坑
    [转]Xcode6中如何添加pch文件
    UIButton和UIImageView的区别
    控件的属性
  • 原文地址:https://www.cnblogs.com/zengzk/p/12907628.html
Copyright © 2011-2022 走看看