2016SDAU课程练习一1000

简单题意:

有400个房间:,需要从一间房间搬桌子到另一间房间,而走廊只有一张桌子的宽度。

搬一次需要10分钟。输入 几 组数据,房间编号 m 到 n ,求最少需要多少分钟。样例:

Sample Input
  
  
3 4 10 20 30 40 50 60 70 80 2 1 3 2 200 3 10 100 20 80 30 50

Sample Output
  
  
10 20 30

解题思路形成过程:

因为是贪心算法专题,所以自然想到了贪心算法。和上一题差不多的格式又写了一遍,发现不合适。思索无果,我在网上寻找思路。原来是计算重复路线,有m条路线是重复最多就需要m*10 min。
感想:

思路是别人的,所以并没有感觉a出来有太高兴的心情。但至少我学到了一种新的思想。


AC代码:

#include<iostream>

#include<algorithm>
using namespace std;
int main()
{
    int t,i,n,b,e;
    cin>>t;
    while (t--)
    {
        int c[200]={0},m=0;
        cin>>n;
        while (n--)
        {
          cin>>b>>e;
            if (b>e)
            {
                i=b;
                b=e;
                e=i;
            }
            for (i=(b-1)/2;i<=(e-1)/2;++i)
            ++c[i];
        }
        for (i=0;i<200;++i)
        if (m<c[i])
        m=c[i];
        cout<<10*m<<endl;
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值