區間問題

在這裏插入圖片描述
在這裏插入圖片描述
思路:在可選的工作中,每次選取結束時間最早的工作(結束時間越早,之後可選的工作也就越多)
代碼:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5;
int n;
pair<int,int>work[maxn];
int main(){
	cin>>n;
	for(int i=0;i<n;i++) cin>>work[i].second;//爲了讓結束時間早的工作排在前面,將t存入first
	for(int i=0;i<n;i++) cin>>work[i].first;//s存入second
	sort(work,work+n);//對pair進行字典序比較
	int ans=0,t=0;//t爲最後所選工作的結束時間
	for(int i=0;i<n;i++)
		if(t<work[i].second){
			ans++;
			t=work[i].first;
		}
	cout<<ans;
	return 0;
}
發佈了120 篇原創文章 · 獲贊 63 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章