问题:
有 n 项工作,每项工作分别在 S[i] 时间开始, 在 T[i] 时间结束 。对于每项
工作,你都有可以选择参与与否。如果选择了参与, 那么自始自终都必须全程参与。
此外,参与工作的时间段不能重叠(即使是开始的瞬间和结束的瞬间的重叠也
是不允许的)。
代码:
#include#include #include using namespace std; const int MAX_N = 100000; int N, S[MAX_N], T[MAX_N]; pair itv[MAX_N]; int main() { cin >> N; for(int i = 0; i < N; i++) { cin >> S[i]; } for(int j = 0; j < N; j++) { cin >> T[j]; } for(int i = 0; i < N; i++){ itv[i].first = T[i]; itv[i].second = S[i]; } sort(itv, itv + N); int ans = 0, t = 0; for(int i = 0; i < N; i++){ if(t < itv[i].second){ ans++; t = itv[i].first; } } cout<