4 条题解

  • 3
    @ 2025-12-6 18:12:25
    #include<bits/stdc++.h>
    using namespace std;
    const int SB=1e6+10; 
    struct line{
    	int a,b;
    }a[SB];
    bool cmp(line x,line y){
    	return x.b<y.b;
    }
    int n,k=1,e;
    int main(){
    	system("color 2");
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i].a>>a[i].b;
    	sort(a+1,a+n+1,cmp);
    	e=a[1].b;
    	for(int i=2;i<=n;i++){
    		if(e<=a[i].a){
    			k++;
    			e=a[i].b;
    		}
    	}
    	cout<<k;
    	return 0;
    }
    
    
    • 1
      @ 2026-4-25 20:46:08

      AC

      #include <bits/stdc++.h>
      using namespace std;
      int main() {
          ios::sync_with_stdio(false);
          cin.tie(nullptr);
          int n;
          cin >> n;
          vector<pair<int, int>> lines(n);
          for (int i=0; i<n; i++) {
              int a,b;
              cin >> a >> b;
              lines[i]={b,a};
          }
          sort(lines.begin(),lines.end());
          int cnt=0;
          int last_end=-1;
          for (int i=0; i<n; i++) {
              int start=lines[i].second;
              int end=lines[i].first;
              if (start>=last_end) {
                  cnt++;
                  last_end=end;
              }
          }
          cout << cnt;
          return 0;
      }
      
      • 1
        @ 2025-12-6 18:21:40

        已AC

        #include<bits/stdc++.h>
        using namespace std;
        const int N=1e6+10;
        const int INF=0x3f3f3f3f;
        struct xd{
            int a,b;
        }a[N];
        int n,ans=1,last;
        int cmp(xd a1,xd a2){
            return a1.b<a2.b;  
        }
        int main(){
            cin>>n;
        	for(int i=1;i<=n;i++){
        		cin>>a[i].a>>a[i].b;
        	}
        	sort(a+1,a+n+1,cmp);
        	last=a[1].b;
        	for(int i=2;i<=n;i++){
                if(a[i].a>=last){
        			ans++;
        			last=a[i].b;
        		}
        	}
        	cout<<ans;
        	return 0;
        }
        
        • 1
          @ 2023-4-16 22:12:27

          骗分过样例,暴力出奇迹。

          爆搜挂着机,打表出省一。

          贪心题目

          #include <bits/stdc++.h>
          using namespace std;
          const int N=1000001;
          struct node{
          	int begin,end;
          }a[N];
          bool cmp(node x,node y){
          	return x.end<y.end;
          }
          int n,ans,last;
          int main(){
          	scanf("%d",&n);
          	for(int i=1;i<=n;i++){
          		scanf("%d%d",&a[i].begin,&a[i].end);
          	}
          	sort(a+1,a+n+1,cmp);
          	for(int i = 1; i <= n; i ++ ){
          		if(a[i].begin>=last){
          			++ans;
          			last=a[i].end;			
          		}
          	}
          	printf("%d",ans); 
          	return 0;
          }
          
          • 1

          信息

          ID
          354
          时间
          1000ms
          内存
          512MiB
          难度
          8
          标签
          递交数
          270
          已通过
          47
          上传者