三十万个数取前 K 大
场景:~/work/heap/topk.cpp 读入 n、k 和 n 个整数,从大到小输出最大的 k 个。结果对,可它用插入排序把所有数全排了一遍,n 一大就超时。 任务:改写 topk.cpp,让 n = 300000 时也能在 1 秒内
写一个大根堆类
场景:~/work/heap/ops.cpp 按指令操作一个大根堆:push x、pop(输出弹出的值)、top(输出堆顶)。MaxHeap 的 push / pop / top 还没写。 任务:补全 MaxHeap。程序最后会自己检查一次
修好写反的比较器
场景:~/work/heap/sched.cpp 按优先级调度任务:每行「优先级 任务名」,优先级大的先处理,同级先进来的先处理。可它现在总是先处理最不急的。 任务:修好比较器 ByPrio,让调度顺序正确。make 编译后用 sample
修好错位的下标公式
场景:~/work/heap/sort.cpp 把一串整数逐个放进手写的大根堆,再逐个弹出,应该得到从大到小的序列。可结果总是乱的。 任务:找出并修好堆里写错的下标公式(不止一处)。make 编译后用 sample.txt 自测。 可操作范
图里的那些点叫什么
一张图里,那些被连起来的点叫【0】。
把两个点连起来的线叫什么
第 1 步:五个人,先画成五个点 第 2 步:认识的两人之间连一条线 第 3 步:岚身上连着两条线 第 4 步:辰一条线都没有 岚 满 泰 风 辰 连接两个点的那条线叫【0】。
边分方向的图叫什么
如果每条边都有方向(只能从这头走到那头),这种图叫【0】。
边上带数字的图叫什么
如果每条边上还标着一个数(比如两地之间的距离),这种图叫【0】。
一个点连着几条边叫什么
某个顶点身上连着的边的条数,叫这个顶点的【0】。
阿泰有几个朋友
五个人的朋友关系:阿岚和小满、阿岚和阿泰、小满和阿泰、阿泰和南风,北辰谁也不认识。运行下面这段程序: #include <iostream> #include <string> #include <utilit