由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教个算法加编程
相关主题
问题请教按层遍历二叉树,常量空间,如何做到?
怎么用lex处理DFA?换个话题,当你发现一个牛顿级别的学霸错了,你该怎么办?
这个图问题的复杂度是多少呢问个树遍历的线程化问题
Cormen星号题:O(n)遍历二叉树,只能用O(1) extra spaceC++ vector 一边遍历一边删
面题:copy directed graph请教一个算法
[合集] 递归算菲波纳切数列的时间复杂度是多少请问一道简单的编程题
[合集] 给定一个最小堆,如何查找某数是否存在此堆中?Remove elements from multiple vectors in C++
讨论 找单链表倒数m的节点 (转载)能帮我看看Ruby的这道题吗?
相关话题的讨论汇总
话题: 删除话题: 复杂度话题: 节点话题: klogk话题: vector
进入Programming版参与讨论
1 (共1页)
s*****g
发帖数: 5159
1
不是想得那么简单,倒腾晕了.
有一组整数对,(,, ....,),用
vector >实现。
现在需要去处所有满足下列条件的数对:
如果piwj,那么去除i
如果pi>pj且wi 保证最后的vector满足上述条件,且没有删除任何不需要删除的元素。
k不大,所以k^3复杂度可以接受。
谢谢大家。
c*m
发帖数: 1114
2
这不就是一个排序问题么?
对 p_i 排序,O(klogk)复杂度
排完后新vector是,...
然后对w_i*按照i从大到小遍历一遍,如果w_(i+1)*(就是
从右向左测试w_i*是个递减数列,碰到不对的话删除左节点。) 复杂度o(k) (当然你也
可以从左到右遍历,反正记得出了问题就删除左节点就行。)
总复杂度O(klogk+k)=O(klogk)?

【在 s*****g 的大作中提到】
: 不是想得那么简单,倒腾晕了.
: 有一组整数对,(,, ....,),用
: vector >实现。
: 现在需要去处所有满足下列条件的数对:
: 如果piwj,那么去除i
: 如果pi>pj且wi: 保证最后的vector满足上述条件,且没有删除任何不需要删除的元素。
: k不大,所以k^3复杂度可以接受。
: 谢谢大家。

s*****g
发帖数: 5159
3
最开始也是这样想的,实验发现不对,现在想了一个,这个稍有改动。
每次删除左节点以后要继续往左比,看看是不是要删除更左的节点,什么时候不能删了
,再往右扫描。

就是

【在 c*m 的大作中提到】
: 这不就是一个排序问题么?
: 对 p_i 排序,O(klogk)复杂度
: 排完后新vector是,...
: 然后对w_i*按照i从大到小遍历一遍,如果w_(i+1)*(就是
: 从右向左测试w_i*是个递减数列,碰到不对的话删除左节点。) 复杂度o(k) (当然你也
: 可以从左到右遍历,反正记得出了问题就删除左节点就行。)
: 总复杂度O(klogk+k)=O(klogk)?

X****r
发帖数: 3557
4
你两个条件不是一回事吗?
这个关系是传递的,换句话说你建立了一个partial order,你要找它产生的
maximal elements,是吧?这个硬做也只要O(k^2)吧,有什么不简单的地方吗?

【在 s*****g 的大作中提到】
: 不是想得那么简单,倒腾晕了.
: 有一组整数对,(,, ....,),用
: vector >实现。
: 现在需要去处所有满足下列条件的数对:
: 如果piwj,那么去除i
: 如果pi>pj且wi: 保证最后的vector满足上述条件,且没有删除任何不需要删除的元素。
: k不大,所以k^3复杂度可以接受。
: 谢谢大家。

c*m
发帖数: 1114
5
是呀,所以这个是右节点优先,推荐你从右像左扫描就很完美了。

【在 s*****g 的大作中提到】
: 最开始也是这样想的,实验发现不对,现在想了一个,这个稍有改动。
: 每次删除左节点以后要继续往左比,看看是不是要删除更左的节点,什么时候不能删了
: ,再往右扫描。
:
: 就是

s*****g
发帖数: 5159
6
多谢,这是十几天脑子不转,不知道为什么.

【在 c*m 的大作中提到】
: 是呀,所以这个是右节点优先,推荐你从右像左扫描就很完美了。
s*****g
发帖数: 5159
7
是传递的,只是数据结构上,每次删掉一个节点,就要小心变化用来比较的两个指针.

【在 X****r 的大作中提到】
: 你两个条件不是一回事吗?
: 这个关系是传递的,换句话说你建立了一个partial order,你要找它产生的
: maximal elements,是吧?这个硬做也只要O(k^2)吧,有什么不简单的地方吗?

1 (共1页)
进入Programming版参与讨论
相关主题
能帮我看看Ruby的这道题吗?面题:copy directed graph
问一个随机排列的问题.[合集] 递归算菲波纳切数列的时间复杂度是多少
一个简单的算法问题?[合集] 给定一个最小堆,如何查找某数是否存在此堆中?
解一道 GOOGLE 面试题 ...讨论 找单链表倒数m的节点 (转载)
问题请教按层遍历二叉树,常量空间,如何做到?
怎么用lex处理DFA?换个话题,当你发现一个牛顿级别的学霸错了,你该怎么办?
这个图问题的复杂度是多少呢问个树遍历的线程化问题
Cormen星号题:O(n)遍历二叉树,只能用O(1) extra spaceC++ vector 一边遍历一边删
相关话题的讨论汇总
话题: 删除话题: 复杂度话题: 节点话题: klogk话题: vector