(每日一练28839)题目名称:放货物

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-05-30 08:51:25

小明是一名快递员,他现在手上一共有N个快件需要运送。但是货车有限,所以我们希望用最少的货车来进行工作。现在已知,一辆车的限定额度为最多放置K件货物。此外,小明很不喜欢13这个数字,所以他不希望任何一辆货车中的货物数量为13。 现在小明想要知道,最少使用多少辆货车能够将这N个快件都放置到货车上。

因为存在多组输入,每次输入两个数据,所以需要自行捕捉输入多少次,不过 python 可以直接一次性接收所有输入,嗯,这就很舒服了

import sys
lines = sys.stdin.readlines()
for row in lines:
    n,k = map(int,row.split())
    ans = n // (k if k != 13 else 12)
    less = n % (k if k != 13 else 12)
    ans += 0 if less ==0 else (1 if less != 13 else 2)
    print(ans)
...全文
165 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-06-26
  • 打赏
  • 举报
回复

因为 js 没有像 py 一样的,可以将所有输入一次性接收的方法,所以,用死循环来进行输入,到没有输入时用异常跳出

while (1){
    try {
        arr = readline().split(' ').map(x => parseInt(x))
        n = arr[0],k = arr[1]
        ans = Math.floor(n / (k != 13 ? k : 12))
        less = n % (k != 13 ? k : 12)
        ans += less == 0 ? 0 : (less != 13 || less > 14 ? 1 : 2)
        print(ans)
    }
    catch(e){
        break
    }
}
yyfhz 2023-05-30
  • 打赏
  • 举报
回复 1

LZ的思路应该是先判定每一个货车可以装多少货(如果最多装13件,那装到第12件就开始换车),
然后看剩下不成车的有多少件。
如果一件不多,那ans直接就是结果。
如果<>13件,那就加一个车送走
如果恰好是13件,那就再拆一下,结果得加2个车。

但是应该有一个Bug,就是当K>14的时候,如果最后一个车子恰好有13个货物,则可以从倒数第二个货车挪一个过来,这样两台货车都可以避免13这个数字。
程序中好像没有考虑到这一点。

文盲老顾 2023-05-30
  • 举报
回复
@yyfhz c站题目没那么多用例,覆盖不到各种情况,所以,每日一练前缀题目,仅用来搞c站用例
文盲老顾 2023-05-30
  • 举报
回复
@yyfhz 对于你说的情况的确存在,但有时考虑太全,反而无法ac,c站用例就这么**蛋
文盲老顾 2023-05-30
  • 举报
回复
@yyfhz 拉用例看了一遍,余13,且k&gt;14的情况,用例中一个都没有

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧