紧急紧急~~~~这个程序怎么写。。。
时间:2011-12-19
来源:互联网
所以老师只能辅导一名知识掌握程度最低的同学。如果有多名同学知识掌握程度最低,则
选编号最小的同学进行辅导。该同学在接受辅导后提升了知识掌握程度。老师想知道他每
天辅导的同学的编号。
★数据输入
输入第一行包括一个正整数N (1<=N<=50000),表示学生人数,第二行输入N 个正整
数,依次表示编号为从 1 到N 的同学的初始知识掌握程度。第三行输入一个正整数 m
(1<=m<=50000),表示老师辅导了m 天。第四行输入m 个数,第i个数表示第i天接受辅导
的同学提升的知识掌握程度的值。
★数据输出
输出两个数,以一个空格隔开,表示m 天后知识掌握程度最低的同学的编号和知识掌
握程度。
输入示例 输出示例
3 2 3
2 3 1
3
1 2 3
大神们~~~不能超时啊。。跪求。。自己写了几个都超时了。。。
无奈啊。。急呀。。
作者: luoxi_123123 发布时间: 2011-12-19
作者: youkuxiaobin 发布时间: 2011-12-19
作者: liuliufen 发布时间: 2011-12-19
3
2 3 1
3
1 2 3
吗?
作者: liuliufen 发布时间: 2011-12-19
作者: yingzijuntuan 发布时间: 2011-12-19
刚开始,建一个小顶堆,按照每个同学的初始掌握度和编号来排序,建好堆后,将堆顶同学掌握度加上这天老师辅导提升的知识掌握度,然后再调整堆到小顶堆,这样重复做m次,就得到了一个以知识掌握度和编号的小顶堆;这样再根据编号来排个序,就可以了;
时间复杂度是m * log(n) + nlog(n) ;
应该不会超时的;
作者: liuliufen 发布时间: 2011-12-19
是输入是
3
2 3 1
3
1 2 3
吗?
抱歉哈。是的。。。那个是输入。。输出是 2 3
作者: luoxi_123123 发布时间: 2011-12-19
这个问题,用堆排序做吧;
刚开始,建一个小顶堆,按照每个同学的初始掌握度和编号来排序,建好堆后,将堆顶同学掌握度加上这天老师辅导提升的知识掌握度,然后再调整堆到小顶堆,这样重复做m次,就得到了一个以知识掌握度和编号的小顶堆;这样再根据编号来排个序,就可以了;
时间复杂度是m * log(n) + nlog(n) ;
应该不会超时的;
能不能麻烦写一下,赶着交作业~~实在写不出,写了几个要不超时要不就错误了。
作者: luoxi_123123 发布时间: 2011-12-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28