【hiho一下_week256】Diligent Robots
hihocoder的hiho一下,第256周的题目
- 原题
- 我的解答
- 别人的解答
原题
传送门:https://hihocoder.com/contest/hiho256/problem/1
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
There are N jobs to be finished. It takes a robot 1 hour to finish one job.
At the beginning you have only one robot. Luckily a robot may build
more robots identical to itself. It takes a robot Q hours to build
another robot.So what is the minimum number of hours to finish N jobs?
Note two or more robots working on the same job or building the same
robot won’t accelerate the progress.
输入
The first line contains 2 integers, N and Q.
For 70% of the data, 1 <= N <= 1000000
For 100% of the data, 1 <= N <= 1000000000000, 1 <= Q <= 1000
输出
The minimum number of hours.
样例输入 10 1
样例输出 5
我的解答
每个机器人有两个选择:1.造机器人2.做任务;造一个机器人用时Q,如果总任务数平均到当前机器人,要花的时间超过了2Q,那么这个机器人就应该选择再造一个机器人。
但是,是不是会出现一部分机器人造人,另一部分做任务的情况呢? 好像这边有这种情况 的 话,总的最短用时还是不变的? 这里边有点复杂,没想明白,先按都一起复制,复制完了一起加工来看吧。
#include <iostream>
#include <cmath> int main(int argc, char** argv) {int n, q;scanf("%d %d", &n, &q);// 首先计算需要复制几次int k = ceil(log((double)(n/(2*q))) / log(2));// 再计算用时int ans = k*q + ceil((double)(n/(pow(2, k))));printf("%d\n", ans); return 0;
}
但是通过情况为WA,60/100
遂改了一下:
int main(int argc, char** argv) {long long int n;int q;scanf("%lld %d", &n, &q);// 首先计算需要复制几次long long int k = ceil(log((double)(n/(2*q))) / log(2.0));// 再计算用时long long int ans = k*q + ceil((double)(n/(pow(2.0, k))));printf("%lld\n", ans); return 0;
}
这次变成80/100了
又改了一下:
int main(int argc, char** argv) {long long int n;int q;scanf("%lld %d", &n, &q);// 首先计算需要复制几次long long int m=1,k=0;while(n > 2*m*q)//根据结论,机器人应当全部复制{m *= 2;k++;}// 再计算用时long long int ans = k*q + ceil((double)(n/(pow(2.0, k))));printf("%lld\n", ans); return 0;
}
别人的解答
https://www.cnblogs.com/ECJTUACM-873284962/p/7136061.html
【这里边包括了一部分机器人在复制,其他机器人在工作这种情况不用考虑的相关证明】
【hiho一下_week256】Diligent Robots相关推荐
- Robots Crossing River hiho一下第175周
题意: 三种机器人过河,也就是到从 A 到 B 再到 C.从 A 到 B 只有一艘船,从 B 到 C也只有一艘船.船载着机器人在 A.B 之间往返需要花费 2 小时,不载机器人在 A.B 之间往返需要 ...
- HDU 6229 Wandering Robots 找规律+离散化
题目链接:Wandering Robots 题解:先讲一下规律,对于每一个格子它可以从多少个地方来有一个值(可以从自己到自己),然后答案就是统计合法格子上的数与所有格子的数的比值 比如说样例的3 0格 ...
- 如何写网站的robots.txt和meta name robots的配置
robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索机器人(有的叫搜索蜘 ...
- robots.txt文件的解析及过滤
什么是robots.txt文件? robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎 ...
- Python爬虫小偏方:如何用robots.txt快速抓取网站?
作者 | 王平,一个IT老码农,写Python十年有余,喜欢分享通过爬虫技术挣钱和Python开发经验. 来源 | 猿人学Python 在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的 ...
- HDU 2300 Crashing Robots
Crashing Robots 题意 模拟多个机器人在四个方向的移动,检测crash robot, crash wall, OK这些状态 这是个模拟题需要注意几点: 理解转变方向后移动多少米,和转动方 ...
- 【谷歌推网页爬虫新标准,开源robots.txt解析器】
https://www.toutiao.com/a1638031116246019 [谷歌推网页爬虫新标准,开源robots.txt解析器] 对于接触过网络爬虫的人来说 robots.txt 绝不陌生 ...
- 模拟 POJ 2632 Crashing Robots
题目地址:http://poj.org/problem?id=2632 1 /* 2 题意:几个机器人按照指示,逐个朝某个(指定)方向的直走,如果走过的路上有机器人则输出谁撞到:如果走出界了,输出谁出 ...
- Robots.txt和Robots META
Robots Text File Robots.txt robots.txt是一套指示搜索引擎(蜘蛛)如何抓取你的网页内容的一张地图,他告诉蜘蛛哪些需要抓取,哪些不要抓取(当然,这只是针对那些遵守这个 ...
- 网站robots.txt探测工具Parsero
网站robots.txt探测工具Parsero robots.txt文件是网站根目录下的一个文本文件.robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当搜索引擎访问一个站点时,它会首 ...
最新文章
- JavaScript模式读书笔记 第5章 对象创建模式
- 浅析个人网站建设需要注重的建设问题
- 安装MindStudio
- 初识Lock与AbstractQueuedSynchronizer(AQS)
- linux中使用yum的优点,linux – 自动“yum update”以保证服务器安全 – 优点和缺点?...
- JavaScript toLocaleString()时间转化为字符串
- 国服服务器_伊丁天堂国服|服务器类型建议收集
- VS2019 打包WPF安装程序最新教程(图文详解)
- 考研政治(二):马克思主义基本原理
- QQ,微信小惊喜代码
- 计算机毕业设计项目推荐(源码+论文+PPT)
- 使用IIS发布ASP.NET网页
- Mask R-CNN网络详解
- 计算机一级ps知识,2017年9月计算机一级photoshop考试试题
- you will need to restart eclipse for the changes to take effect. would you like to restart now?
- Mac系统如何查看更新R版本
- 见缝插针小游戏制作详细步骤
- Ubuntu20.04启动paraFoam失败
- 【C语言】之实现多达50位数相乘的运算
- php 循环结构的联系题,php - 烧脑题,有一个程序循环逻辑问题,急在线等