题目:http://acm.hdu.edu.cn/showproblem.php?pid=1050#include<iostream> #include<algorithm> #include<set> using namespace std; struct A { int c; int d; }; bool cmp(A a,A b) { return a.c<b.c; } int main() { int a,i,n,m; A e[200]; cin>>n; while(n--) { multiset<int> ss; cin>>m; for(i=0;i<m;i++) { cin>>e[i].c>>e[i].d; e[i].c=(e[i].c-1)/2; e[i].d=(e[i].d-1)/2; if(e[i].c>e[i].d)swap(e[i].c,e[i].d); } sort(e,e+m,cmp); ss.insert(e[0].d); for(i=1;i<m;i++) { if((*(ss.begin()))<e[i].c) { ss.erase(ss.begin()); } ss.insert(e[i].d); } cout<<ss.size()*10<<endl; } return 0; } 小结:贪心算法,房间号较小的房间先搬。