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;
}
}
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;
}
}
相关文章推荐
- 51nod 1428 活动安排问题
- 【贪心+优先队列】1428 活动安排问题【51nod】【难度:2级算法题】
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51NOD 1428 活动安排问题
- 51nod 1428 活动安排问题(贪心)
- [51nod-1428]活动安排问题 题解
- 贪心+优先队列-51nod-1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题 优先队列+贪心
- 51nod 1428 活动安排问题
- 51Nod 1428 活动安排问题 (贪心
- 51nod 1428 活动安排问题(优先队列)
- 51Nod-1428-活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 【51Nod】1428 - 活动安排问题(贪心 || 思维)