分析:这题貌似还可以用线段树做,这里使用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