#include <stdio.h>
#include <algorithm>
using namespace std;
struct TV{
int s,e,l;
bool operator <(const TV &A)const{
return e<A.e;
}
}buf[100];
int main(){
int n,i;
while(scanf("%d",&n)!=EOF&&n!=0){
for(i=0;i<n;i++){
scanf("%d%d",&buf[i].s,&buf[i].e);
buf[i].l=buf[i].e-buf[i].s;
}
sort(buf,buf+n);
int ans=1;
int endtime=buf[0].e;
for(i=1;i<n;i++){
if(buf[i].s>=endtime){
ans++;
endtime=buf[i].e;
}
}
printf("%d\n",ans);
}
return 0;
#include <algorithm>
using namespace std;
struct TV{
int s,e,l;
bool operator <(const TV &A)const{
return e<A.e;
}
}buf[100];
int main(){
int n,i;
while(scanf("%d",&n)!=EOF&&n!=0){
for(i=0;i<n;i++){
scanf("%d%d",&buf[i].s,&buf[i].e);
buf[i].l=buf[i].e-buf[i].s;
}
sort(buf,buf+n);
int ans=1;
int endtime=buf[0].e;
for(i=1;i<n;i++){
if(buf[i].s>=endtime){
ans++;
endtime=buf[i].e;
}
}
printf("%d\n",ans);
}
return 0;
}
这是贪心算法的练习题
感觉还是很不熟练
首先注意结构体中定义了小于符号 以及定义的格式 bool operaor <(const TV &A)const { return e<A.e; }
还有贪心思路,此处是看哪个节目结束的早 然后累积