贪心算法,题目简单就是ac不了=-=
#include <iostream>
#include <stdio.h>
#include <vector>
#include <map>
#include <utility>
#define M 30000
#include <queue>
using namespace std;
typedef pair <int,int >p;
p itv[M];
priority_queue <int ,vector<int > ,greater<int> > que1;
priority_queue <int>que2;
int main()
{
freopen("in.txt","r",stdin);
int n,t;
bool flag=true;
int mark=1;
int ans=0;
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&itv[i].first,&itv[i].second);
que1.push(itv[i].first);
}
if(que1.top()!=1)
flag=false;
else
{
while(mark<t)
{
for(int i=1;i<=n;i++)
{
if(itv[i].first<=mark&&itv[i].second>mark)
{
que2.push(itv[i].second);
}
}
if(que2.empty())
{
flag=false;
break;
}
mark=que2.top();
ans++;
while(!que2.empty())
que2.pop();
}
}
if(flag)
printf("%d",ans);
else
printf("-1");
return 0;
}
先暂时放一下,一时找不到wa的原因,衰!!!