南阳oj 757 期末考试【优先队列+sort排序】

描述

马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没

交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗?

输入
输入n,表示n门功课(n<2000),接下来n行,每行两个数a,b,分别表示交作业的最后期限,迟交扣除的分数。

(以文件结尾)

输出
输出扣除的最小分数。
样例输入
3
3 10
3 5
3 1
3
1 6
3 2
1 3
7
1 3
4 2
6 1
4 7
2 6
4 5
3 4
样例输出
0
3
5
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
struct exam
{
	int gra,date;
}arr[1002];
bool cmp(exam a,exam b)
{
	if(a.date==b.date) return a.gra<b.gra;
	return a.date<b.date;
}
exam temp;
priority_queue<int,vector<int>,greater<int> >q;
int main()
{
	int t,n,i;

	while(~scanf("%d",&t))
	{
		while(!q.empty()) q.pop();//队列初始化 

		for(i=0;i<t;++i)
		{
			scanf("%d%d",&arr[i].date,&arr[i].gra);
		}
		sort(arr,arr+t,cmp);
		int sum=0;
		//int day=0;
		for(i=0;i<t;++i)
		{
			if(q.size()<arr[i].date) q.push(arr[i].gra); //q.size()当成天数
			else//就要扣分了,不过要尽量扣得最少
			{
				if(q.top()<arr[i].gra)
				{
					sum += q.top();
					q.pop();
					q.push(arr[i].gra);
				}
				else
				{
					sum+=arr[i].gra;
				}
			}
			//++day;
		}
		printf("%d\n",sum);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 18:19:28

南阳oj 757 期末考试【优先队列+sort排序】的相关文章

nyoj 757 期末考试【优先队列+贪心】

期末考试 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没 交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗? 输入 输入n,表示n门功课(n<2000),接下来n行,每行两个数a,b,分别表示交作业的最后期限,迟交扣除的分数.(以文件结尾) 输出 输出扣除的最小分数. 样例输入 3 3 10 3 5 3 1 3 1 6 3 2 1

期末考试(优先队列)

期末考试 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没 交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗? 输入 输入n,表示n门功课(n<2000),接下来n行,每行两个数a,b,分别表示交作业的最后期限,迟交扣除的分数.(以文件结尾) 输出 输出扣除的最小分数. 样例输入 3 3 10 3 5 3 1 3 1 6 3 2 1

hdoj 3785 寻找大富翁【优先队列+sort排序】

寻找大富翁 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4504    Accepted Submission(s): 1838 Problem Description 浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁. Input 输入包含多组测试用例.每个用例首先包含2个整数n(0<n<=100000)和m(0<m<

nyoj757 期末考试 (优先队列)

题目757 题目信息 运行结果 本题排行 讨论区 期末考试 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没 交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗? 输入 输入n,表示n门功课(n<2000),接下来n行,每行两个数a,b,分别表示交作业的最后期限,迟交扣除的分数. (以文件结尾) 输出 输出扣除的最小分数. 样例输入 3

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

NOIP2017 d1t1 期末考试

题目描述: 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生C不愉快度.对于第i门课程,按照原本的计划,会在第bi天公布成绩.有如下两种操作可以调整公布成绩的时间: 1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟一天,公布课程Y成绩的时间提前一天:每次操作产生A不愉快度. 2.增加一部

[Shoi2017]期末考试

题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布. 第i位同学希望在第ti天或之前得知所有课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生C不愉快度.对于第i门课程,按照原本的计划,会在第bi天公布成绩. 有如下两种操作可以调整公布成绩的时间: 1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟一天,公布课程Y成绩的时间提前一天:每次操作产生A不愉快度. 2.增加一部分

codevs 2915 期末考试

时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 期末考试要来了,某同学正在努力复习. 他要复习N个知识点,每个知识点需要一定的知识做基础. 现给你一个AOV网,其中有M条边<Ai,Bi>. 问他能考得怎样?(假设他只要复习了就不会出错,没复习就什么也不会) 输入描述 Input Description 两个正整数N,M M行,Ai  Bi. 输出描述 Output Description 若能考满分,输出Oh,yeah! 若能及

《信息检索》第一期期末考试

爱课程网携手云课堂打造的顶尖高校在线学习平台 我的云课堂 爱课程网 中国大学MOOC 课程 学校 你好,imoocRen 搜索 信息检索 黄如花 公告 评分标准 课件 测验与作业 考试 讨论区 分享到 帮助中心 <信息检索>第一期期末考试  返回考试列表 本次得分为:28.00/30.00, 本次测试的提交时间为:2014-12-04. 1 ()是高校或科研机构的毕业生为获取学位而撰写的. (单选2分) 得分/总分 A. 学位论文  2.00 /2.00 B. 科技报告 C. 政府出版物