贪婪算法,用c语言实现的一道题

在一个狭窄的走廊里将桌子从一个房间移动到另一个房间,走廊的宽度只能允许一个桌子通过。给出t,表示有t组测试数据。再给出n,表示要移动n个桌子。n下面有n行,每行两个数字,表示将桌子从a房间移到b房间。走廊的分布图如一图所示,每移动一个桌子到达目的地房间需要花10分钟,问移动n个桌子所需要的时间。现有8人(2人一组)搬运20张桌子,请编程输出最佳搬运方案,最少用多少时间完成工作?典型的搬桌子问题的拓展,每次搬桌子需要10分钟,且占用走道。

# include<iostream>
# include<string.h>
using namespace std;
int main()
{
    int n,m,f,s;
    int move[200];


cin>>n;
while(n--)
    {
    memset(move,0,sizeof(move));


    cin>>m;
    for(int i=0;i<m;i++)
        {
        cin>>f>>s;
        f=(f-1)/2;
        s=(s-1)/2;
        if(f>s){swap(f,s);}
        for(int j=f;j<=s;j++)
            {
                move[j]++;
            }
        }
    int max=0;
    for(int i=0;i<200;i++)
    {
        if(move[i]>max)
            max=move[i];
    }
    cout<<max*10<<endl;


    }
return 0;
}追问

这个是简单的搬桌子,这题要求的是分组了,也就是一次搬4张桌子,要搬5次啊

温馨提示:答案为网友推荐,仅供参考
相似回答