priority queue练习题 我们定义一个正整数a比正整数b优先的含义是: *a的质因数数目(不包括自身)比b的质因数数目多; *当两者质因数数目相等时,数值较大者优先级高。 现在给定一个容器,初始元素数目为0,之后每次往里面添加10个元素,每次添加之后,要求输出优先级最高与最低的元素,并把该两元素从容器中删除。 时间限制:2500 内存限制:131072 输入 第一行: num (添加元素次数,num <= 30) 下面10*num行,每行一个正整数n(n < 10000000). 输出 每次输入10个整数后,输出容器中优先级最高与最低的元素,两者用空格间隔。 样例输入 1 10 7 66 4 5 30 91 100 8 9 样例输出 66 5
正确答案:参考程序(C++):优先队列自定义比较。质因数数目(不包括自身)多者优先,相等则数值大者优先。每批10个push,输出最高最低并删除。样例输出66 5。核心:质因数计数+优先队列。
试卷来源:202209 青少年等级考试C/C++真题七级