这是蒟蒻的第一篇题解,(之前的都没过,估计这篇也过不了

回到正题
这题,本蒟蒻第一眼看到以后,就决定咦,这不是模拟吗?

看到世界范围,嗯,打扰了。

扯回正题
首先,暴力肯定是A不了的(至少我A不了

但是,身为蒟蒻的我,还是打了一个暴力。

include<bits/stdc++.h>

using namespace std;

double x, ans;
unsigned long long n;

double mypow(double x, int y)
{
double sum = 1;
while(y --)
sum *= x;
return sum;
}

int main()
{
scanf("%lf%u", &x, &n);
for(int i = 1; i <= n; ++ i)
ans += mypow(x, i) / i;
printf("%.4lf\n", ans);
return 0;
}
不出意外,0分,12000ms,全T;

然后,认真分析,这是一道数学题。嗯(废话

用快速幂优化试下

include<bits/stdc++.h>

using namespace std;

double x, ans;
unsigned long long n;

double ksm(double x, unsigned long long y)
{
if(y == 1)
return x;
if(y & 1)
return ksm(x * x, y >> 1) * x;
return ksm(x * x, y >> 1);
}

int main()
{
scanf("%lf%u", &x, &n);
for(int i = 1; i <= n; ++ i)
ans += ksm(x, i) / i;
printf("%.4lf\n", ans);
return 0;
}
嗯,高一点,30分,8520ms,后面的还是T了,

我们T掉的原因是什么?

就是我们求和那里跑了太多次,而i越的,x的i次方就越小,又因为它的精度要求只有4位,

所以,后面有很多次都是白跑的,对结果没影响。

那就,不跑。

嗯,在输入完n以后,判断一下,是否比maxn大

如果大的话,就赋n为maxn;

好,现在的问题又转化成了,maxn应该取什么值;

maxn应该取一个什么样的值?

它要使得,在它后面的数相加小于0.00005;

额,我最开始随便取了一个值,300

结果,80分,海星;

继续扩大maxn,因为,时间相对还算充裕,我就赋大了一点,赋到了7233,就A了;

好,接下来就是愉快的代码时间了

include<bits/stdc++.h>

using namespace std;

double x, ans;
unsigned long long n;//开无符号更保险,

//这是递归版的快速幂
double ksm(double x, unsigned long long y)
{
if(y == (unsigned long long) 1)
return x;
if(y & 1)
return ksm(x * x, y >> 1) * x;
return ksm(x * x, y >> 1);
}

//这是循环版的快速幂
/
double ksm(double x, unsigned long long y)
{
double ans = 1, base = x;
while(y != 0)
{
if(y & 1 != 0)
ans
= base;
base = base;
y >>= 1;
}
return ans;
}
/

int main()
{
scanf("%lf%ull", &x, &n);//输入
if(n >= 72333)//奇葩的特判,我觉得这是骗分。。。
n = 72333;
for(double i = 1.0; i <= (double) n; ++ i)//嗯,i的类型定义为double更好
ans += ksm(x, i) / i;//递推式,不说;
printf("%.4lf\n", ans);//输出
ret

洛谷 P1920 成功密码 题解的更多相关文章

  1. 洛谷——P1920 成功密码

    P1920 成功密码 题目描述 void_rank匪别人的书来看,原本想看杂志颓废的,结果不小心拿错拿成了被导师称作旁门左道的高中数学杂志<成功密码>.数学差得不行的void_rank实在 ...

  2. [洛谷P1920]成功密码

    题目大意:给你n和x($n\leq 10^{18},0<x\leq 1$),要你求$\sum_{i=1}^n\frac{x^i}{i}$. 解题思路:首先n大到要用long long存,暴力肯定 ...

  3. 洛谷P2832 行路难 分析+题解代码【玄学最短路】

    洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...

  4. 【洛谷P3960】列队题解

    [洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...

  5. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  6. 洛谷P1577 切绳子题解

    洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...

  7. 【洛谷】P5348 密码解锁

    [洛谷]P5348 密码解锁 很显然我们可以推导出这个式子 设\(a(m)\)为\(m\)位置的值 \[ \mu(m) = \sum_{m | d} a(d) \\ a(m) = \sum_{m|d} ...

  8. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  9. 洛谷 P1220 关路灯 题解

    Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...

随机推荐

  1. Git连接GitHub仓库详解

    [Annotation]本文将从标题八开始,因为前七个标题是关于Git的基本操作,如果对Git的基本操作不了解的话,可以点击下方链接先看一下Git怎么使用. 关于Git的详细使用 八:创建SSH Ke ...

  2. My First Cloud Application's Design

    Structure Diagram as following: Questions list: 1. Skydrive Integration > Based on the MSDN commu ...

  3. Java开发者入职必备条件

    01.基础技术体系 我认为知识技能体系化是判断技术是否过关的第一步.知识体系化包含两层含义: 1. 能够知道技术知识图谱(高清版图谱扫文末二维码)的内容 比如分布式系统中常用的RPC技术,其背后就涉及 ...

  4. VLAN实验(3)

    1.选择2台S3700和5台pc机,并根据实验编址完成此拓扑图. 2.启动设备,检查设备的连通性: 由于现在我们还没有划分VLAN,这5台PC,还在同一个VLAN中,现在我们启动所有的设备,这是所有的 ...

  5. 某些机root也不能访问dma-buf

    从4.3后,回顾<从surfaceflinger历史变更谈截屏>,只能通过生产消费者队列向surfaceflinger服务申请显示缓冲,这个缓冲就是dma-buf映射的共享内存. bind ...

  6. PHP提高SESSION响应速度的方法有哪些

    1.设置多级目录存储SESSION 默认session的存储目录是1级目录,如果用户量比较大,session文件数量就比较大,我们可以设置目录数为2,使用2级目录可以提交查找和存取速度.不过这种方式对 ...

  7. ASP.NET Core gRPC 使用 Consul 服务注册发现

    一. 前言 gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍 ...

  8. 百度杯 十一月 的一道pwn题复现

    拿到题后,就直接开鲁.. /ctf/pwn# checksec pwnme [*] '/ctf/pwn/pwnme' Arch: amd64--little RELRO: Full RELRO Sta ...

  9. 研究Java语言的编译器和虚拟机源代码

    现在使用Java语言的人很多,但是了解Java语言实现的人非常少.如果要研究Java语言的实现,推荐研究Javac和虚拟机HotSpot的源代码实现,其中Javac相当于Java编译的前端,HotSp ...

  10. SpringBoot学习(六)—— springboot快速整合RabbitMQ

    目录 Rabbit MQ消息队列 简介 Rabbit MQ工作模式 交换机模式 引入RabbitMQ队列 代码实战 Rabbit MQ消息队列 @ 简介 优点 erlang开发,并发能力强. 社区活跃 ...