我是靠谱客的博主 暴躁大白,最近开发中收集的这篇文章主要介绍2J.处女座的期末复习(C++)处女座的期末复习(C++),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

处女座的期末复习(C++)

点击做题网站链接

题目描述
快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行复习,考试的起始时间为bi,处女座为了考试可以不吃饭不睡觉,处女座想知道他能否复习完所有的科目(即在每一门考试之前复习完该科目)。每一门课的考试时间都为两小时。

输入描述:
第一行一个整数n
第二行n个整数a1,a2,…,an,表示每门课需要复习的时间
第三行n个整数b1,b2,…,bn,表示每门课考试的时间
1 &lt; = n &lt; = 1 0 5 1&lt;=n&lt;=10^5 1<=n<=105
0 &lt; = a i &lt; = 1 0 9 0&lt;=ai&lt;=10^9 0<=ai<=109
0 &lt; = b i &lt; = 1 0 9 0&lt;=bi&lt;=10^9 0<=bi<=109

输出描述:
如果处女座能复习完,输出”YES”,否则输出”NO”

示例1
输入

3
0 1 1
2 6 4
输出
YES

说明
在0-1小时复习第2门课,
在1-2小时复习第3门课,
在2-4小时考第1门课,
在4-6小时考第3门课,
在6-8小时考第2门课

备注:
考试时不能复习,保证考试时间不会重叠。
复习可以拆开,只要复习时间够了即可。

解题思路:
贪心算法,每次复习还没有复习但是最先考试的科目即可

解题代码:

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 5;

struct st
{
    int a;
    int b;
}course[N];

bool cmp(st x, st y) { return x.b < y.b; }//对b[i]从小到大排序

int main()
{
    int n;//考试课程数
    cin >> n;
    for(int i=0;i<n;++i) cin >> course[i].a;//每门课需要复习的时间
    for(int i=0;i<n;++i) cin >> course[i].b;//每门课考试的时间
    
    sort(course,course+n,cmp);//对b[i]从小到大排序
    
    long long int sum = 0;
    int i;
    for(i=0;i<n;++i)
    {
        sum += course[i].a;
        if( sum > course[i].b ) break;
        sum += 2;//再加上考试的2小时
    }
    if( i==n ) cout << "YES" << endl;
    else cout << "NO" << endl;
    return 0;
}

笔记

关于sort()函数的补充结构体用法:

  1. sort函数的时间复杂度为n*log2(n),执行效率较高。
  2. sort函数的形式为sort( first,end,method ),其中第三个参数可写可不写。
  3. 若为两个参数,则sort的排序默认是从小到大。
  4. 若为三个参数,则需要写一个“比较”函数,用于判断是从小到大排序还是从大到小排序。
#include <iostream>
#include <algorithm>
using namespace std;
 
struct node 
{
	int a;
    //.........
};
 
bool cmp(node x,node y)
{
     if(x.a != y.a) 
		 return (x.a > y.a);//对a从大到小排序
}
 
int main()
{
	node t[5];
	for(int i=0;i<5;++i) cin >> t[i].a;
	sort(t,t+5,cmp);
	for(int i=0;i<5;++i) cout << t[i].a;
	cout << endl;
}   

最后

以上就是暴躁大白为你收集整理的2J.处女座的期末复习(C++)处女座的期末复习(C++)的全部内容,希望文章能够帮你解决2J.处女座的期末复习(C++)处女座的期末复习(C++)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部