zoukankan      html  css  js  c++  java
  • BZOJ-1878 HH的项链

    题意:

    给一串数C[1..n],对于每次询问[i,j],给出C[i..j]中有多少个不同的数。

    此题可用离线做法。

    先对每个询问排序,并求出Pre[1..n](Pre[i]表示C[1..i-1]中与C[i]相同且离C[i]最近的数的下标,如没有则为0)

    然后建一个树状数组Tree,i依次取值为1..n。

    先把Tree[Pre[i]+1..i]加一,然后查看有没有哪个询问的End是i,如果有的话那个询问的答案为Tree[询问的Begin]。

    不知道你看懂了没。。。

    Code:

    http://ideone.com/FZbswC

  • 相关阅读:
    窗口实训1
    课后练习----实现窗口的切换
    第五次实训作业继承
    课程总结
    999
    777777777777777777777
    7
    6
    5
    事件处理程序
  • 原文地址:https://www.cnblogs.com/NanoApe/p/4396759.html
Copyright © 2011-2022 走看看