Redian新闻
>
郡主要成为剩女了 (转载)
avatar
郡主要成为剩女了 (转载)# Joke - 肚皮舞运动
C*u
1
Australian National University Lecturer 的职位。35-40分钟,不知道一般问什么
问题?多谢信息!
avatar
P*c
2
保证heap的property, 有什么好的方法没有?
avatar
m*M
3
最近有个agent告诉我,我可以用first time buyer program,不知道这个program 有
何优越之处?适合外国人吗,有绿卡可以吗?还是必须是美国人?谢谢了
avatar
C*g
4
【 以下文字转载自 Dreamer 讨论区 】
发信人: Dreamer (不要问我从哪里来), 信区: Dreamer
标 题: 郡主要成为剩女了
发信站: BBS 未名空间站 (Mon Apr 25 03:59:17 2011, 美东)
郡主是一个很有追求的人,无奈出生在官员的家庭,说话受家人影响,被人认为很不靠谱。其实,郡主是一个很善良的女孩。
先说背景,郡主虽然比不上公主胡海清、习明泽,她爹没那么高的地位。作为中华某特大部正部长的女儿(她爹实权不比瓜瓜他爹小),她也不像瓜瓜那样名声在外。总之郡主之名不见诸媒体,实在很低调。
话说高中时期郡主是一个很有理想很有追求的人,人也很聪明,凭着自己努力拼搏、刻苦学习,郡主没靠任何关系,考入了高考或者考研指南上学校代码为001的学校,进入了系别代码为001的系——数学系,立志要做纯数学。在高官的子女中,郡主的聪慧曾经被部里的无数人称赞。这点,郡主比其他太子党子女强好多好多。
只是从小说话都是共产党的官腔,被大家认为是极其不靠谱。当初选班干部郡主的演讲就不说了,话说有一年寒假,班上有女生买不到火车票回家,郡主就说:“买不到火车票那为什么不去买飞机票?”那个女生当时气不打一处来。其实郡主真的没有恶意,只是她不明白下层百姓的疾苦。那时候,班上有男生家里很穷,买不起电脑,郡主就主动把家里的电脑送给了人家,可见郡主是一个很善良的人。郡主也曾把同学叫到自己的家里去玩,大家发现原来高官的家也这么朴实无华,开的汽车也不过神龙富康,没什么奢华显眼之处。郡主穿的衣服虽然很讲究,但也没有什么珠光宝气,不会让人觉得高人一筹。
不过,在001学校001系,郡主的理想不幸被打击了,她确实不是那些高中时搞奥赛魔鬼训练出来的那批人金牌银牌们的对手,于是郡主就说:“那些研究纯数学的牛人不是疯子就是精神病患者,要么就是监狱的囚犯,都不是正常人,为了显示我是一个正常人,我才故意不考高分的......”
不过无论如何,郡主没找到合适的bf。不是她配不上人家,是大家高山仰止。本科毕业前,郡主很大方的在某著名BBS上写了自己的简历,例如在三大投行实习过,征BF。不过就是要求的条件很多,其中有一条像政审,让大家都极端的ft。不知道当时郡主收到了多少应征信,不过排除势利的、排除政治不合格的,排除***的,最后没有合适的,于是郡主还是没有征到BF。于是郡主只好孤身一人去中国人民银行“养老”上班了,看见同学都在海外为ph.d奋斗得很high,郡主于是也想去留学过把瘾。于是郡主就留学了,很低调,很不起眼地。于是郡主开始接触和她以前不一样的世界,接触海外的愤青和WSN,和她以前经历的完全不同么。于是郡主开始思考,开始叛逆,开始不听家里的话。可是郡主一思考,上帝就发笑。于是乎,郡主海归了,又开始工作了。好不容易找了一个BF,当和BF交底牌的时候,不小心说了自己是某某部长的女儿。那个部,那可是很大的一个部,好有实权的一个部啊,更重要的是,她老爸还是李克强的人,前途无量。可是她BF吓坏了,辞掉了北京的工作跑到老家的乡下躲了起来,说绝不会和她这样的人结婚的。
其实,郡主应该找一个门当户对的,可惜门当户对的一般都不会考虑郡主:因为他们不缺钱也不缺地位,他们会考虑美女。现在郡主叛逆心重,找的bf是对共党不是很满的,一听她的背景就被吓坏了。郡主理想的的bf应该是穷苦人家出生有上进心,能为共产主义事业奋斗终身的那种,可是现在的社会,贫富差距越来越大,穷苦人家出生有上进心能为共产主义事业奋斗终身的那种就很少很少了,穷苦人家的孩子基本上都是对社会很不满的,无论海外还是国内。
看来,郡主要成为剩女了。呼呼!
avatar
B*n
5
主要是你写的selection criteria上的问题。
avatar
g*k
6
先bubble up,也就是swap(current, parent)直到root,
然后就跟删root的操作一样了,我没怎么仔细检查,但是应该没什么问题。
你不妨写写代码测试一下,回来报告一下,呵呵。

【在 P**********c 的大作中提到】
: 保证heap的property, 有什么好的方法没有?
avatar
m*M
7
Nobody has experience on that?
avatar
p*e
8
李源潮?
avatar
s*n
9
heap有什么property?不就是root节点特别一点吗?把最后一个元素移到被删除节点,
heap size减一不就行了吗?
Am I missing something?
avatar
f*b
10
没听说过

【在 m****M 的大作中提到】
: 最近有个agent告诉我,我可以用first time buyer program,不知道这个program 有
: 何优越之处?适合外国人吗,有绿卡可以吗?还是必须是美国人?谢谢了

avatar
P*c
11
heap是recursive定义的,每个子树也必须是heap,直接size--肯定不行的. 不过你这个也是一个思路,可以把最后一个元素移到被删除节点,然后再怎么调整一下。
但是如果被删除的点跟最后一个节点不是属于一个子树的话,貌似不太好处理。getback的那个思路应该是对的。我待会儿试下。
比如这样一个heap
10
9 2
8 7 1 0
6
你这个思路的话,如果删除的是9,那应该把6移到9的位置上然后siftdown, 如果删除的是1, 移过去之后需要siftup, 所以需要分情况讨论。

【在 s****n 的大作中提到】
: heap有什么property?不就是root节点特别一点吗?把最后一个元素移到被删除节点,
: heap size减一不就行了吗?
: Am I missing something?

avatar
P*c
12
测过了,这个应该是对的。

【在 g*****k 的大作中提到】
: 先bubble up,也就是swap(current, parent)直到root,
: 然后就跟删root的操作一样了,我没怎么仔细检查,但是应该没什么问题。
: 你不妨写写代码测试一下,回来报告一下,呵呵。

avatar
Y*f
13
测试过的代码:
#include
#include
using namespace std;
void deleteNode(int heap[], int n, int pos)
{
// put the last elements to where the node removed
heap[pos] = heap[n-1];
// adjust elements above pos
int i = pos;
while(i != 0 && heap[i] < heap[(i - 1) / 2])
{
swap(heap[i], heap[(i - 1) / 2]);
i = (i - 1) / 2;
}
// adjust elements below pos
i = pos;
while(true)
{
if (2 * i + 1 > n -2)
{
//already leaf
break;
}
else if (2 * i + 1 == n -2)
{
//only one leaf child
if (heap[2 * i + 1] > heap[n - 2])
{
swap(heap[2 * 1 - 1], heap[n - 2]);
}
break;
}
else
{
// two children
int minChild = 0;
if (heap[2 * i + 1] < heap[2 * i + 2])
{
minChild = 2 * i + 1;
}
else
{
minChild = 2 * i + 2;
}
if (heap[i] > heap[minChild])
{
swap(heap[i], heap[minChild]);
i = minChild;
}
else
{
break;
}
}
}
}
void print_heap(int heap[], int n)
{
int rntPos = 1;
for (int cnt = 0; cnt < n; cnt++)
{
if (cnt == rntPos)
{
cout << endl;
rntPos = rntPos * 2 + 1;
}
cout << heap[cnt] << " ";
}
}
int main()
{
{
int heap[] = {2, 9, 3, 11, 25, 6, 12, 14, 13, 27, 28, 7};
int numElms = sizeof(heap)/sizeof(int);
print_heap(heap, numElms);
deleteNode(heap, numElms, 4);
cout << endl << " ------" << endl;
print_heap(heap, numElms - 1);
}
cout << endl << endl;
{
int heap[] = {2, 9, 3, 11, 25, 6, 12, 14, 13, 27, 28, 7};
int numElms = sizeof(heap)/sizeof(int);
print_heap(heap, numElms);
deleteNode(heap, numElms, 2);
cout << endl << " ------" << endl;
print_heap(heap, numElms - 1);
}
}

【在 P**********c 的大作中提到】
: 保证heap的property, 有什么好的方法没有?
avatar
n*r
14
假设heap是max Heap。
可以直接对要删除的节点i和最后的节点N交换,然后
1.若要删除的节点比最后节点小,执行siftUp,否则siftDown
2.删除最后的节点
这样应该就可以,不需要先和根节点交换
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。