您的位置:首页 > 编程语言 > Go语言

【最近公共祖先】[COCI]STOGOVI

2015-09-07 14:12 190 查看
首先可以定义每一个节点代表一种操作,那么我们需要知道的状态有{前一个状态的id,当前的栈顶元素}那么我们可以发现因为只是指向前面的元素,那么我们不需要考虑有环的问题(不存在),那么我们可以因为数据范围巨大,那么我们需要用LCA进行优化,同时我们发现如果弹出了,那么一定会变得更小(每个栈的序列是升序的)那么我们只要找到需要判断的两个重复的LCA节点到a和到b的中间所有节点的最小值(这个也可以用倍增弄看NOIP2013 day1t3)就可以知道我们最小的重复出现的栈(每个栈只出现了1次)然后可以做出这道题目了,代码等会儿写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: