题
人脑模拟计算
#include <bits/stdc++.h>
using namespace std;
struct seg{ // 大脑创建了一个概念 -*-区间-*-
int l, r; // 概念 -*-区间-*- 需要一个单元的神经元x2(l 和 r), 用来表示左右端点
bool operator< (const seg& val) const{ // 定义概念 -*-区间-*- 的比较运算中的小于运算
return r < val.r; // 概念 -*-区间-*- 的小于运算需要比较两个概念的右端点
}
};
int main(){
int n; // 大脑申请了一个单位的神经元 n
cin >> n; // 大脑将看到的数据存入神经元 n
vector S(n + 1); // 大脑申请了一串存储 多个概念 -*-区间-*- 的神经元组 S
for(int i = 1, l, r; i <= n; i ++) // 大脑将屏幕上每一个概念 -*-区间-*- 存入 S
cin >> l >> r, S[i] = {l, r};
sort(S.begin() + 1, S.end()); // 大脑对神经元组 S 进行排序
int ans = 0, last = -2e9; // 大脑申请了一个单位的神经元x2(ans 和 last)
for(int i = 1; i <= n; i ++) // 大脑对神经元组 S 中的每一个概念 -*-区间-*- 进行遍历
if(last < S[i].l) // 大脑将神经元 last 与 神经元组中第 i 个概念 -*-区间-*- 中的神经元 l 进行比较
ans ++ , last = S[i].r; // 大脑对神经元 ans 和 last 进行改变
printf("%d", ans); // 大脑将神经元 ans 显示在电脑屏幕上
return 0;
}