您的位置:首页 > 其它

51nod 1428 活动安排问题

2017-01-17 21:51 281 查看
题目链接:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428题
题解:

这题,好吧,自己还是想了蛮久的,但是感觉还是自己想多了,先对整个进行结构体的排序,然后只要对全部的东西一直维护一个最大值就行了,对了,记得要记录这个点是否已经被访问过了,自己之前就一直忘了这个问题。

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e4+10;
#define met(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
struct node
{
int x,y;
}s[maxn];
int n;

int cmp(node a,node b)
{
return a.x<b.x;
}

int main()
{
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>s[i].x>>s[i].y;
sort(s,s+n,cmp);
int cnt=0;
int ans=0;
int visited[maxn];
met(visited,0);
while(cnt<n)
{
int temp=-inf;
for(int i=0;i<n;i++)
{
if(!visited[i])
{
if(temp<=s[i].x)
{
temp=s[i].y;
visited[i]=1;
cnt++;
}
}
}
ans++;
}
cout<<ans<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: