洛谷 P1920 成功密码 题解
这是蒟蒻的第一篇题解,(之前的都没过,估计这篇也过不了
回到正题
这题,本蒟蒻第一眼看到以后,就决定咦,这不是模拟吗?
看到世界范围,嗯,打扰了。
扯回正题
首先,暴力肯定是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 成功密码 题解的更多相关文章
- 洛谷——P1920 成功密码
P1920 成功密码 题目描述 void_rank匪别人的书来看,原本想看杂志颓废的,结果不小心拿错拿成了被导师称作旁门左道的高中数学杂志<成功密码>.数学差得不行的void_rank实在 ...
- [洛谷P1920]成功密码
题目大意:给你n和x($n\leq 10^{18},0<x\leq 1$),要你求$\sum_{i=1}^n\frac{x^i}{i}$. 解题思路:首先n大到要用long long存,暴力肯定 ...
- 洛谷P2832 行路难 分析+题解代码【玄学最短路】
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...
- 【洛谷P3960】列队题解
[洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 洛谷P1577 切绳子题解
洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...
- 【洛谷】P5348 密码解锁
[洛谷]P5348 密码解锁 很显然我们可以推导出这个式子 设\(a(m)\)为\(m\)位置的值 \[ \mu(m) = \sum_{m | d} a(d) \\ a(m) = \sum_{m|d} ...
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- 洛谷 P1220 关路灯 题解
Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...
随机推荐
- php 全文搜索搜索-讯搜使用
相信很多朋友遇到过,需要全文搜索的场景,百度了一圈发现了一个xunsearch 首先本地采集了1万篇文章,发现效率还可以. 使用上也很简单,直接上代码 //接收关键词 $xs = new XS('xp ...
- python——函数的基本概念
Python函数认识 数学定义 y = f(x), y是x的函数,x是自变量. python中的函数组成 由若干语句组成的语句块.函数名称.参数列表构成,函数是组织代码的最小单元 像一个黑盒子,我们给 ...
- 为什么我加了索引,SQL执行还是这么慢(一)?
在MySQL中,有一些语句即使逻辑相同,执行起来的性能差异确实极大的. 先抛出一个结论:如果想使用索引树搜索功能,就不能使用数据库函数来处理索引字段值,而是在不改变索引字段值的同时,自己通过SQL语句 ...
- 《计算机网络 自顶向下方法》 第6章 链路层和局域网 Part2
待补充完善 Web 页面的请求历程 应用层 报文.主机 运输层 报文段. 网络层 数据报.路由器.IP 地址 链路层 以太网帧.交换机.MAC 地址 步骤 1)到 4) ...
- java笔试面试第一天
好久未曾启用我的博客,最近来上海找工作,想将笔试面试的过程做个记录,毕竟有总结才有提高嘛.今天算是笔试面试正式开始第一天吧,以下就是我的笔试总结(没有原题了,只有知识点): 笔试题1:java sta ...
- nyoj 53-不高兴的小明 (遍历)
53-不高兴的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:28 submit:89 题目描述: 小明又出问题了.妈妈认为聪明的小明应该 ...
- codeblocks 调试
codeblocks 调试工具使用的注意事项: 1.codebloccks 调试,必须要在一个项目下才可以,也就是说“单独的文件是不能运行debug工具的” 2.项目的目录文件名必须是全英文,同时文件 ...
- Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
本文是 Spring Boot 整合数据持久化方案的最后一篇,主要和大伙来聊聊 Spring Boot 整合 Jpa 多数据源问题.在 Spring Boot 整合JbdcTemplate 多数据源. ...
- C语言1博客作业06
这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://www.cnblogs.com/sanying/p/11771502.html 我在这个课程的目标是 端正态度,认真对待 ...
- Python 编程语言要掌握的技能之一:使用数字与字符串的技巧
最佳实践 1. 少写数字字面量 “数字字面量(integer literal)” 是指那些直接出现在代码里的数字.它们分布在代码里的各个角落,比如代码 del users[0] 里的 0 就是一个数字 ...