zoukankan      html  css  js  c++  java
  • 20200306(ABC)题解 by 孙晨曦

     今晚A题题解:
    n<=100,直接暴力,开两个string数组a[],b[],对每个a[i]找有没有b[j](未打过标记的)==a[i],有的话把a中第i个和b中第j个都打上标记,答案就是a中没打标记的串的数量

    B题题解:
    先让ans=不插入元素时的总开灯时间。
    预处理0-a1,a1-a2,a2-a3,...,an-M的差值(绝对值)记作k1,k2,k3,...,kn+1
    对于k的奇数下标是开灯的持续时间,偶数下标就是关灯时间
    然后对开灯时间求前缀和,关灯时间求后缀和
    设开灯时间的前缀和数组为l1[],后缀和数组为r0[]
    i从1到n枚举,答案就是max(ans,l1[i]+r0[i+1]-1),
    即在ai前面插入ai-1,前面的开关灯时间段不变,后面的开关灯时间段交换,但是还要减去ai-(ai-1)的这1秒关灯时间
    (不太严谨,好像还要判断是否已存在ai-1这个数了,如果存在就跳过)

    C题题解:
    如果坐标<=1e6的话显然用差分数组
    坐标<=1e18,直接差分即TLE又MLE,所以用map充当差分数组
    因为map是有序的,所以用for(auto i:Map)枚举map内的数,用pre记录刚枚举过的i-1的坐标(key),
    然后统计答案时就是ans[差分前缀和]+=i.first-pre+1
  • 相关阅读:
    WebStorm 使用
    Mac上因磁盘格式导致gulp无限刷新问题
    JS数组随机排序
    Javascript高性能动画与页面渲染
    两列布局,左边固定,右边自适应的三种方法
    google pay app权限使用说明
    javaFX
    https网站引用http路径的js和css失效解决办法
    tomcat笔记
    java sigar.jar
  • 原文地址:https://www.cnblogs.com/QLU-ACM/p/12430937.html
Copyright © 2011-2022 走看看