/* 400个房间两两为一组,创建为大小为200的数组来存放 答案为:叠加最多的数*10 */ #include <iostream> using namespace std; int main(){ int t,i,j,n,p[200]; int s,d,temp,k,max; cin>>t; for (i=0; i<t; i++) { for (j=0; j<200; j++)//初始化数组 p[j]=0; cin>>n; for (j=0; j<n; j++) { cin>>s>>d; s=(s-1)/2;//找到在数组的起始位置 d=(d-1)/2;//找到在数组的结束位置 if (s>d) { temp=s; s=d; d=temp; } for (k=s; k<=d; k++) p[k]++;//要占用这一段的过道,+1 } max=-1; for (j=0; j<200; j++) if (p[j]>max)//找到占有叠加次数最多的一段 max=p[j]; cout<<max*10<<endl; } return 0; }
贪心算法刷题(一)hdu 1050
最新推荐文章于 2025-08-04 12:00:00 发布