XDOJ1181 - 烤面包

Description

        除了写题,zqs还喜欢烤面包。

        烤面包需要正反两面各烤一次,每个烤箱同时只能烤一个面包的一面,烤一面需要3分钟,现在他要烤N个面包,有M个烤箱,问烤完所有的面包需要多少时间

 

Input

 有多组输入数据,第一行为一个数字case,代表有多少组输入数据 (case<=20)
 以下每组数据一行有2个整数n,m,代表需要烤n个面包,有m个烤箱 (0<=N<=1000,1<=M<=1000)

Output

 一共case行,每行一个整数对应该组数据拷完所有面包需要多少时间

Sample Input

2
2 1
3 3

Sample Output

12
6

解题思路:

如果你认为每次一个面包烤完一面后接着烤第二面的话,那么你就想错了。举个例子:5个面包,2个烤箱

(1)1号面包一面,2号面包一面

(2)1号面包第二面,2号面包第二面

(3)3号面包一面,4号面包一面

(4)3号面包第二面,4号面包第二面

(5)5号面包一面

(6)5号面包第二面

结果需要3×6=18分钟。

其实正确的结果应该如下:

(1)1号面包一面,2号面包一面

(2)3号面包一面,4号面包一面

(3)5号面包一面,1号面包第二面

(4)5号面包第二面,2号面第二面

(5)3号面包第二面,4号面包第二面

结果需要3×5=15分钟

所以要分情况讨论:

  • 如果n<=m,结果就是6分钟
  • 如果n>m,结果就是3×(2n/m+[2n%m]),其中的[2n%m]表示,2n关于m的模如果为0则为0,不为0则为1
#include<iostream>
#include<cstdio>
using namespace std;



int main()
{
    int caseN;
    while(cin>>caseN)
    {
        for(int i=0;i<caseN;++i)
        {
            int n,m;
            cin>>n>>m;
            if(n==0)
            {
                cout<<0<<endl;
                continue;
            }
            if(n<=m)
            {
                cout<<6<<endl;
                continue;
            }
            int minute = 3;
            int t = 2*n/m;
            if(2*n%m!=0)
                ++t;
            cout<<t*minute<<endl;
        }
    }
    return 0;
}

 

最后欢迎大家访问我的个人网站: 1024s

xdoj application是一个用于竞技编程训练和练习的平台。 首先,xdoj application提供了大量的编程题库,涵盖了各种语言和难度级别。这些题目既有经典的算法问题,也有实际应用的编程挑战,可以满足不同水平的程序员的需求。通过解题,程序员可以提高自己的编程能力和算法思维。 其次,xdoj application提供了在线的程序编译和运行环境。程序员可以直接在平台上编写和测试自己的代码,无需安装任何开发工具。这大大降低了环境配置的难度,让程序员能够更加专注于解决问题本身。 另外,xdoj application还支持代码提交和评测功能。程序员可以将自己的代码提交到平台上,系统会对其进行自动评测,并给出相应的反馈和评分。这样,程序员可以及时了解自己的代码是否正确并进行相应的优化。同时,平台上也会展示其他程序员的提交和评测结果,让程序员能够学习和借鉴其他人的解决思路和代码实现。 最后,xdoj application还提供了练习和比赛等功能。程序员可以选择不同类型的练习模式,根据自己的需求进行编程训练。同时,平台也会定期举办编程比赛,供程序员们进行交流和竞争。这些比赛既能检验程序员的编程水平,也能提供一种实战的机会,加深对编程知识的理解和应用。 总之,xdoj application是一个功能齐全且用户友好的竞技编程平台,能够帮助程序员提高编程能力、锻炼算法思维,并提供交流、学习和竞争的机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值