HDU 3650 差分
题意:
可以瞬移的Sunny却不能同时看两个场馆的表演,现给出n个场馆表演开始和结束时间,问多少天能全部看完。
题解:
求最大限度按覆盖次数。利用差分数组做。
View Code
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <algorithm> 6 7 #define N 86444 8 9 using namespace std; 10 11 int s[N],e[N],n; 12 13 inline void read() 14 { 15 memset(s,0,sizeof s); 16 memset(e,0,sizeof e); 17 for(int i=1,a,b;i<=n;i++) 18 { 19 scanf("%d%d",&a,&b); 20 if(a>b) swap(a,b); 21 s[a]++; e[b]++; 22 } 23 } 24 25 inline void go() 26 { 27 int ans=0,res=0; 28 for(int i=0;i<=86400;i++) 29 { 30 res+=s[i]; 31 ans=max(ans,res); 32 res-=e[i]; 33 } 34 printf("%d\n",ans); 35 } 36 37 int main() 38 { 39 while(scanf("%d",&n),n) read(),go(); 40 return 0; 41 }
没有人能阻止我前进的步伐,除了我自己!