貪心
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4351
對b從小到大排序就可以了
#pragma warning(disable :4786)<br />#include<iostream><br />using namespace std;<br />#include<algorithm><br />#include<set><br />struct node<br />{<br />int a,b;<br />}arm[2510];</p><p>bool cmp(const node c,const node d)<br />{<br />return c.b<d.b;<br />}</p><p>int main()<br />{<br />int n,m;<br />multiset<int> s;<br />multiset<int>::iterator it;<br />while(cin>>n>>m)<br />{<br />int i,ans=0,d;<br />for(i=0;i<n;i++)<br />{<br />cin>>arm[i].a>>arm[i].b;<br />}<br />sort(arm,arm+n,cmp);<br />s.clear();<br />for(i=0;i<m;i++)<br />{<br />cin>>d;<br />s.insert(d);//multiset自動排序<br />}<br />for(i=0;i<n;i++)<br />{<br />it=s.lower_bound(arm[i].a);//*it>=x<br />//upper_bound()----*it>x<br />if(it!=s.end() && *it<=arm[i].b)<br />{<br />ans++;<br />s.erase(it);<br />}<br />}<br />cout<<ans<<endl;<br />}<br />return 0;<br />}