家庭作业 题解(C++)

题目

家庭作业

老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业学分为 10,要求在 6 天内交,那么要想拿到这 10 学分,就必须在第 6 天结束前交。
每个作业的完成时间都是只有一天。例如,假设有 7 次作业的学分和完成时间如下:
作业号 期限 学分
1 1 6
2 1 7
3 3 2
4 3 1
5 2 4
6 2 5
7 6 1
最多可以获得 15 学分,其中一个完成作业的次序为 2,6,3,1,7,5,4,注意可能还有其他方法。
你的任务就是找到一个完成作业的顺序获得最大学分。

Input
第一行一个整数 N,表示作业的数量;
接下来 N 行,每行包括两个整数,第一个整数表示作业的完成期限,第二个数表示该作业的学分。

Output
输出一个整数表示可以获得的最大学分。保证答案不超过 C/C++ 的 int 范围。

Example
样例输入
7
1 6
1 7
3 2
3 1
2 4
2 5
6 1
样例输出
15
Hint
对于 20% 的数据,N≤103;
对于 40% 的数据,N≤104;
对于 60% 的数据,N≤105;
对于 100% 的数据,N≤106,作业的完成期限均小于 7×105。

思路

思路也不难,只要大家听过双关键字排序就OK了。
所谓双关键字排序,就是类似一个坐标一样,逐个比对,只不过可以用稍稍更改了一点点的sort排序实现。

代码

#include<bits/stdc++.h>
using namespace std;
struct test {int day;int score;
};
bool compare(test a1,test a2){if(a1.day>a2.day){return false;}if(a1.day == a2.day){if(a1.score<=a2.score){return false;}}return true;
}
int main(){bool employ[100005] = {false};test a[100005];int n,result = 0;cin>>n;for(int i = 0;i<n;i++){cin>>a[i].day>>a[i].score;}sort(a,a+n,compare);for(int i = 0;i<n;i++){cout<<a[i].day<<" "<<a[i].score<<endl;}for(int i = 0;i<n;i++){if(!employ[a[i].day]){result+=a[i].score;employ[a[i].day] = true;}}cout<<result;
}

家庭作业 题解(C++)相关推荐

  1. 信息安全系统设计基础家庭作业

    <深入理解计算机系统>家庭作业 * 8.9 答案: 进程对 是否并发 AB 否 AC 是 AD 是 BC 是 BD 是 CD 是 * 8.10 答案: A. 调用一次,返回两次: fork ...

  2. 一次家庭作业意外搞定40年前的数学猜想,牛津小哥:我只研究了几个礼拜

    晓查 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 只是完成一次普通家庭作业,就把困扰了数学家们几十年的猜想搞出了新花样?! 没错,这是来自牛津大学的Thomas Bloom的亲身经历. 在一 ...

  3. 20135202闫佳歆-第二章家庭作业-2.69

    第二章家庭作业 选题:2.69 分值:三分 作业过程: 以下是rotate_right函数的代码: unsigned rotate_right(unsigned x, int n) {int endb ...

  4. 很多家长学历不高,无法辅导孩子的家庭作业怎么办?

    很多家长学历不高,无法辅导孩子的家庭作业.这种现象过去比较普遍,现在随着国家整体教育水平的提高,家长的学历越来越高,尤其在城市里.这样,家长就具备了知识储备,一些可以胜任对孩子的辅导,他们可以辅导孩子 ...

  5. 头歌c语言实训作业题解

    头歌c语言实训作业题解 持续更新 C语言程序设计编辑与调试环境 1.打印输出 Hello World 2.打印输出图形 3.求三个数的最大值 4.熟悉C语言调试环境 C语言中最基本的输入输出 1.看看 ...

  6. 【CSAPP】家庭作业2.77~2.97

    文章目录 2.77** 2.78** 2.79** 2.80*** 2.81** 2.82* 2.83** 2.84* 2.85* 2.86* 2.87* 2.88** 2.89* 2.90* 2.9 ...

  7. 山东科技大学2020年6月1日作业题解

    山东科技大学2020年6月1日作业题解 题目一: STL--灵活的线性表 Description 数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入.删除和访问操作),给你若干 ...

  8. 发现孩子做作业用计算机,孩子写作业要用手机完成?家庭作业电子化,到底靠谱不靠谱...

    原标题:孩子写作业要用手机完成?家庭作业电子化,到底靠谱不靠谱 "妈妈,拿手机给我,我要开始做作业啦!"最近,有不少家长吐槽,说从开学到现在,孩子几乎每天都有手机上的作业.每天放学 ...

  9. #10008. 「一本通 1.1 练习 4」家庭作业

    [题目描述] 老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分.每个作业的截止日期和学分可能是不同的.例如如果一个作业学分为 10,要求在 6 天内交,那么要想拿到这 ...

  10. 小学生家庭作业C语言编程,家庭作业

    家庭作业一(Chapter 2) P80 2.56 试用不同的示例值来运行show_bytes的代码. 为了能方便地同屏显示多个不同的示例值结果,对原有的代码做了一定的添加修改,使得主函数main中有 ...

最新文章

  1. R语言使用aov函数进行单因素协方差分析(One-way ANCOVA)、使用multcomp包的glht函数检验组均值之间所有成对对比差异、通过contrast参数自定义对比组进行组间两两方差分析
  2. iframe 内嵌第三方网站 cookie 失效,解决办法
  3. kernel笔记——内核编译与进程管理
  4. jQuery插件之Cookie
  5. 第十六周博客作业西北师范大学|李晓婷
  6. redis三种架构:主从Cluster哨兵+整合Springboot访问redis
  7. [机器学习 ] RandomForest、GBDT、XGBoost、lightGBM 原理与区别
  8. 【javascript】获取 格式化时间
  9. ffmpeg分析系列
  10. python 身份证校验位计算
  11. window双网卡上网
  12. C4D材质原理揭秘笔记-初学必看
  13. android型号的平板电脑,AUTOID Pad /Air-(win)/Air-(android)工业级平板电脑
  14. PTA——是不是太胖了
  15. 关于Raphael开发过程中的一些总结
  16. 四川乐而得教育:拼多多店铺推广要注意哪些优化
  17. acme.sh申请Let‘s Encrypt 免费HTTPS证书
  18. 个人简历(java基础入门)
  19. 基于Gitlab Issues为导向的分支管理
  20. Zbrush人体手部模型雕刻 | 手部笔刷太好用了

热门文章

  1. 360度不停旋转动画demo效果示例(整理)
  2. c 语言条件运算符,C 语言条件运算符详细讲解
  3. NetBeans安装
  4. 算法题目:小于n的最大数
  5. SCAU 1038 打印图案
  6. java中解耦合_简单分析程序中耦合和解耦合
  7. 李想的理想,不太「理想」
  8. 2017-2018-2 20179216 《网络攻防与实践》 第八周总结
  9. wget php mirror 地址,使用wget命令镜像网站
  10. 帝国cms html广告,帝国cms加入JS广告代码不显示的解决办法