分析:这题貌似还可以用线段树做,这里使用memset函数很方便的实现。
#include<iostream>
using namespace std;
int main()
{
int a[1445],i,n,hh,mm;
int s,t,count;
while(scanf("%d",&n)==1)
{
memset(a,-1,sizeof(a));
for(i=0;i<n;i++)
{
scanf("%d:%d",&hh,&mm);
s=hh*60+mm;
scanf("%d:%d",&hh,&mm);
t=hh*60+mm;
memset(a+s,0,sizeof(a[0])*(t-s)); //时间被占用清零
}
count=0;
for(i=0;i<1440;i++) //一天总共有1440分钟
if(a[i])
count++;
printf("%d\n",count);
}
return 0;
}
原文地址:http://blog.csdn.net/a809146548/article/details/45866435