概述
给牛照相
题目描述
农夫约翰想给他的N (2 <= N <= 1,000,000,000) 头牛照相,这些牛站成一排分别编号为1..N。每张照片可以拍摄连续的一些牛,并且约翰想让每头牛至少出现在一张照片上。
不幸的是有一些牛脾气不合,不想出现在同一张照片上,不合的牛有K(1 <= K <= 1000)对。给出这K对不合关系,算一下约翰最少需要拍多少张照片。
输入
第1行,两个整数N和K
第2到K+1行,每行两个数A和B,表示位置在A和B的两头牛不合,因此不能在同一张照片中。
输出
一个整数,表示约翰最少需要拍多少张照片数。
样例输入
7 3 1 3 2 4 5 6
样例输出
3
提示
约翰需要拍3张照片。
第一张拍1-2号牛
第二张拍3-5号牛
第三张拍6-7号牛
//数据结构真是妙啊
//感谢YPA学长给的思路,太妙了!
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int a,b;
}a[1001];
bool cmp(node x,node y)
{
return x.a<y.a;
}
int main()
{
int s,i,j,l,t;
int n,k;
cin>>n>>k;
int st=1;
int cnt=1;
for(i=0;i<k;i++)
{
cin>>a[i].a>>a[i].b;
if(a[i].a<a[i].b)
{
swap(a[i].a,a[i].b);
}
}
sort(a,a+k,cmp);
for(i=0;i<k;i++)
{
if(a[i].b>=st)
{
cnt++;
st=a[i].a;
}
}
cout<<cnt<<endl;
return 0;
}
最后
以上就是危机招牌为你收集整理的YTU OJ 2372:给牛照相的全部内容,希望文章能够帮你解决YTU OJ 2372:给牛照相所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复