8 solutions

  • -1
    @ 2021-10-17 16:28:11

    分析: 创建一个集合结构体,储存开始时间与结束时间。将结构体进行从小到大进行排序,然后将第一次结束时间拿出来,从第二个元素开始循环比较,如果开始时间大于结束时间就++,更新结束时间 代码: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct set{ int s; int f; bool operator<(const set &rhs)const{ return f<rhs.f; } }; int main() { int n; set a[1005]; memset(a,0,sizeof(a)); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d",&a[i].s,&a[i].f); } sort(a+1,a+1+n); int ans=1; int cnt=a[1].f; for(int i=2;i<=n;i++) { if(a[i].s>=cnt) { ans++; cnt=a[i].f; } } printf("%d",ans); return 0; }

    Information

    ID
    91
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    # Submissions
    177
    Accepted
    56
    Uploaded By