首页 > 其他分享 >AT4783 题解

AT4783 题解

时间:2022-08-25 00:30:00浏览次数:88  
标签:排序 QAQ int 题解 AT4783 return include

题目传送门

小学生又双叒叕来写题解啦!

这题的关键就是贪心

看到 N 的范围,瞬间明白可能要排序。

所以我们靠着排序来想。

我们来思考一下怎样安排顺序。

对于两个时间限制,时间限制短的那个任务要先做。

为什么呢?

显然,它们所需的总时间是相等的,开始的时间也是相等的。

所以,用时间限制长的来卡总时间更好,即先短后长。

排序的大问题解决了,剩下的可就简单了。

直接按这个最优顺序模拟即可。

送上满分代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct QAQ
{
	int a, b;
};
QAQ t[200005];
bool cmp(QAQ x, QAQ y)
{
	return x.b < y.b;
}
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d%d", &t[i].a, &t[i].b);
	sort(t+1, t+n+1, cmp);
	int now = 0;   //记录当前时间。 
	for (int i = 1; i <= n; i++)
	{
		now += t[i].a;
		if (now > t[i].b)
		{
			printf("No\n");  //勿忘祖传换行。 
			return 0;
		}
	}
	printf("Yes\n");   //勿忘祖传换行。 
	return 0;
}

首发:2022-02-03 22:00:22

标签:排序,QAQ,int,题解,AT4783,return,include
From: https://www.cnblogs.com/liangbowen/p/16622782.html

相关文章

  • AT4891 题解
    题目传送门小学生又双叒叕来写题解啦!这题的翻译貌似不完整。所谓怪兽与英雄的对决,就是双方同时扣同样的血,直到一方为零。弄懂题后,你会发现,这题不是考贪心,而是模拟。写......
  • AT4573 题解
    题目传送门小学生又双叒叕来写题解啦!我来介绍一种与众不同的跑得更慢的方法,那就是排序加二分。排序的作用是为了二分,因为二分的前提是数组有序。因此读入完数据后排序......
  • AT2141 题解
    题目传送门小学生又双叒叕来写题解啦!出布永远不会亏,所以只要能出布就出布。这就变成了个模拟题。需要记录石头的数量、布的数量、总分。送上满分代码:#include<iostr......
  • AT3524 题解
    题目传送门小学生又双叒叕来写题解啦!每个数都不受限制的可以变成三个数,那我们就用数组存每个数的变身情况,每次都给那三个数对应的计数器加一即可。然后呢?大家的思路都......
  • AT2162 题解
    题目传送门这题可以线性效率过,有位大神用哈希表虐橙题,太恶心厉害了,然而根本不需要。我使用双指针做这题,同样是线性效率!两个指针都是从零开始,分别指向两个字符串。每一......
  • AT3620 题解
    题目传送门做题的第一件事就是看范围。注意到范围,想到应该要使用\(O(n\times\logn)\)的办法。进而联想到排序与二分。事实证明的确要使用排序与二分。不说废话......
  • AT3525 题解
    题目传送门小学生又双叒叕来写题解啦!翻了一下大家的思路,怎么都一样?当数量达到\(10^7\)时,题解代码全爆掉!你问为什么,时间效率\(O(n)\)不稳过吗?对,可是空间复杂度呢,显......
  • AT2586 题解
    题目传送门许多人使用栈,然而根本不需要。先读入整个字符串,然后枚举每个字符。如果当前字符是左括号,往后搜,有就匹配并消除。然而消除这个动作太慢了,如果匹配到,只需把它......
  • AT4276 题解
    小学生又来写题解啦!容易想到,范围内七五三数不会很多,因此尝试暴力搜索,即深搜。参数除了当前的数外,还有三个布尔类型的变量分别表示三、五、七有无出现。每次都判断是否为......
  • P8080 题解
    题目传送门小学生又来写题解啦!你可能会认为,能够使用杯座人数的最大值,就是杯座数量。但结合样例一,若杯座数量大于总人数,只能输出总人数。下一个问题是如何计算杯座数量......