4967专题

【HDU】4967 Handling the Past 线段树

传送门:【HDU】4967 Handling the Past 题目分析:比赛的时候没机会看这道题,没想到是线段树。。。 题目的意思是每给一个操作,然后就将这个操作和之前的操作按时间重新排序后重新执行,然后如果是peak就输出重新执行后对应时间的栈顶元素。保证没有非法pop操作。 首先我们可以将时间离散化(题目保证时间不同),按照离散化的时间建立线段树。每次push操作向线段树对应时间

HDU 4967 Handling the Past

题意: 你有一个栈  一些操作发生在栈上  包括进栈、出栈、询问栈顶  每个操作有一个独一无二的时间  当操作读进来时  要把之前处理的本该在本操作之后的操作全撤销  接着完成现在的操作  再把撤销的操作重做一遍  每次询问操作输出栈顶元素 思路: 由于时间唯一  那么可以用时间来对应插入的元素以及操作的类型  所以首先离散化时间(这里不去掉重复也行) 然后我们把push当作+1  pop