hdu 5124

来源:互联网 发布:游戏人生软件下载 编辑:程序博客网 时间:2024/06/06 03:05

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5124

思路:对于一段线段[a,b],记录a这点+1,b+1这点-1,然后就相当于统计前缀最大和;

用vector实现即可,想了半天都没想到vector

#include <iostream>#include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include <vector>using namespace std;int main(){  int T,n;  scanf("%d",&T);  vector< pair<int ,int > >v;  while(T--)  {    scanf("%d",&n);    v.clear();    for(int i=0;i<n;i++)    {       int a,b;       scanf("%d%d",&a,&b);       v.push_back(make_pair(a,1));       v.push_back(make_pair(b+1,-1));    }    sort(v.begin(),v.end());    int len=v.size(),sum=0,ans=0;    for(int i=0;i<len;i++)    {      sum+=v[i].second;      if(sum>ans)ans=sum;    }    printf("%d\n",ans);  }  return 0;}


0 0
原创粉丝点击