巫泽俊 《挑战》P42
贪心
#include <iostream> #include <vector> #include <sstream> #include <string> #include <cmath> #include <stack> #include <algorithm> using namespace std; pair<int,int> p[105]; int a[105]; int b[105]; int main() { int n; cin>>n; for(int i=1;i<n+1;++i) { cin>>a[i]>>b[i]; if(a[i]>=b[i]) {int x=b[i];b[i]=a[i];a[i]=x;} p[i].first=b[i]; p[i].second=a[i]; } sort(p+1,p+n+1); int cnt=0; int temp=-10000;///temp表示选中的线段延伸的最远处 考虑输入数据正负 for(int i=1;i<n+1;++i) { if(p[i].second>=temp) { cnt++; temp=p[i].first; } } cout<<cnt<<endl; }