洛谷P1803凌亂的yyy

題目背景

快noip了,yyy很緊張!

題目描述

現在各大oj上有n個比賽,每個比賽的開始、結束的時間點是知道的。

yyy認爲,參加越多的比賽,noip就能考的越好(假的)

所以,他想知道他最多能參加幾個比賽。

由於yyy是蒟蒻,如果要參加一個比賽必須善始善終,而且不能同時參加2個及以上的比賽。

輸入輸出格式

輸入格式:

第一行是一個整數n ,接下來n行每行是2個正整數ai,bi(ai<bi),表示比賽開始、結束的時間。

輸出格式:

一個整數最多參加的比賽數目。

輸入輸出樣例

輸入樣例#1:
3
0 2
2 4
1 3
輸出樣例#1: 
2




說明

對於20%的數據,n≤10;

對於50%的數據,n≤1000;

對於70%的數據,n≤100000;

對於100%的數據,n≤1000000,0≤ai<bi≤1000000。



思路:

按照比賽的截止時間從小到大排序,記錄第一個比賽的截止時間,枚舉。(注意是最多隻能參加一個比賽……)


代碼(通俗易懂):

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;

struct hahanoip {
	int start, end;
}a[1000010];

int ans = 1, n, biaoji;
bool flag;

int hahacmp( hahanoip x, hahanoip y ) {
	return x.end < y.end;
}

int main() {
	scanf( "%d", &n );
	for( int i = 1; i <= n; i++ )
		scanf( "%d%d", &a[i].start, &a[i].end );
	sort( a + 1, a + n + 1, hahacmp );
	biaoji = a[1].end;
	for( int i = 2; i <= n; i++ ) {
		if( a[i].start >= biaoji ) {
			ans++;
			biaoji = a[i].end;
		}
	}
	printf( "%d", ans );
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章