区间相交问题 解题报告 最小删去区间数目=区间总数目-最大相容数目。 最大相容问题可以用贪心解决。具体的贪心策略是:将所有区间按照重点升序排列,贪心选择满足相容性且终点最小的区间。如此重复选择区间。 #include<iostream> #define Max 40001 #include<algorithm> using namespace std; struct Interval{ int s,t; }p[Max]; bool cmp(struct Interval a,struct Interval b){ return a.t<b.t; } int main(){ int n; while(scanf("%d",&n)!=-1){ for(int i=0;i<n;i++){ int s,t; scanf("%d%d",&s,&t); if(s<t) p[i].s=s,p[i].t=t; else p[i].s=t,p[i].t=s; } sort(p,p+n,cmp); int cnt=1,lmt=p[0].t; for(int i=1;i<n;i++) if(p[i].s>lmt) cnt++,lmt=p[i].t; cnt=n-cnt; printf("%d/n",cnt); } return 0; }