首页 > 编程语言 > 详细

贪心算法1000

时间:2016-03-20 18:02:45      阅读:200      评论:0      收藏:0      [点我收藏+]

题目大意:

有若干房间,奇数房间在偶数房间的对面,共用一条走廊,从一个房间搬运桌子到另一个房间,如果房间之间共用同一个走廊,则不能同时进行,搬运以此需要10,求最短时间;

解题思路:

首先对房间按照开始房间号进行排序,在进行化简,1号和二号房间共用同一个走廊,开始房间和结束房间加一除二为走廊,搬桌子可以并行执行,遇到冲突需要分别执行,记录冲突最多的走廊为所求结果;

代码:

#include <iostream>
#include <algorithm>
using namespace std;
struct mm
{
    int a;
    int b;

}s[401];
bool cmp(mm m,mm n)
{
    if(m.a<=n.a)
    return true;
    return false ;
}
int main()
{
    int n,N,u,i,j,max[201],t=0;

    cin>>N;
    while(N-->0)
    {
        for(int p=0;p<200;p++)
        max[p]=0;
        t=0;
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>s[i].a>>s[i].b;
            if(s[i].a>s[i].b)
            {

                u=s[i].a;
                s[i].a=s[i].b;
                s[i].b=u;
            }
            s[i].a=(s[i].a+1)/2;
            s[i].b=(s[i].b+1)/2;
            for(j=s[i].a;j<=s[i].b;j++)
            max[j]++;
        }

            for(i=0;i<200;i++)
            {
                if(max[i]>t)t=max[i];
            }

        cout<<t*10<<endl;

    }
    return 0;
}

 

贪心算法1000

原文:http://www.cnblogs.com/Sikaozhe/p/5298986.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!