4 条题解
-
3
#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
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
已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
骗分过样例,暴力出奇迹。
爆搜挂着机,打表出省一。
贪心题目
#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
- 上传者