专栏文章

题解:AT_arc054_b [ARC054B] ムーアの法則

AT_arc054_b题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqmw8ag
此快照首次捕获于
2025/12/04 07:24
3 个月前
此快照最后确认于
2025/12/04 07:24
3 个月前
查看原文

思路

通过推导,不难发现:刚开始计算时,速度快速下降(指数级下降),开始时间变化较小,当 x{x} 越来越大时,计算速度比开始速度小。
因此,能发现总时长回升,形成了前降后升,故用三分。
高桥他知道摩尔法则1,于是他准备从一个适合的时机计算 T(334){T(334)},尽早结束 T(334){T(334)} 的运算。

得到公式
计算结束之前的时间=开始计算之前的时间+开始计算时的计算机计算 T(334){T(334)} 所需的时间2

代码

CPP
#include<iostream>
#define Eps 1e-10
//题目限度是1e-10,即0.000000001
using namespace std;
double N;
double TimeCompute(double X)
{
	return X+N/pow(2,X/1.5);//运用到摩尔法则...
}
signed main(){
	scanf("%d",&N);
	double L=0,R=N;
	while(R-l>Eps){
		double Mid1=(L*2+R)/3,Mid2=(L+R*2)/3;
		if(TimeCompute(Mid1)<TimeCompute(Mid2))R=Mid2;//不合适,往前选择
		else L=Mid1;//仍然时间太长,再往后
	}
	printf("%10.lf\n",TimeCompute((L+R)/2));
	return 0;
}
岛国水题要换行!

补充

Footnotes

  1. 摩尔法则是指在 n{n} 年后,计算机的速度将会是现在的 2x÷1.5{2^{x\div{1.5}}} 倍。
  2. 为了使时间能尽可能的短,故用三分。

评论

0 条评论,欢迎与作者交流。

正在加载评论...