hrb——开锁魔法I——————【规律】
2024-09-05 20:26:38
解题思路:从1到n的倒数之和。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){ int n;
while(scanf("%d",&n)!=EOF){ double ans=0;
for(int i=1;i<=n;i++){ ans+=(1.0/i);
}
printf("%.4lf\n",ans);
}
return 0;
}
开锁魔法I | |||||
|
|||||
Description | |||||
一日,崔克茜来到小马镇表演魔法。 其中有一个节目是开锁咒:舞台上有 n 个盒子,每个盒子中有一把钥匙,对于每个盒子而言有且仅有一把钥匙能打开它。崔克茜可以通过魔法,暴力打开一个盒子。崔克茜想知道,期望使用多少次魔法可以打开所有盒子,你能帮助她回答吗? |
|||||
Input | |||||
多组测试数据。 每组数据仅一行,有一个整数n。(n <= 10000000) |
|||||
Output | |||||
对于每组询问,输出一行,代表对应的答案。结果保留四位小数。 | |||||
Sample Input | |||||
1 2 |
|||||
Sample Output | |||||
1.0000 1.5000 |
|||||
Hint | |||||
n=2时, 箱子内的钥匙有两种情况:①号箱内有②号箱的钥匙,②号箱内有①号箱的钥匙;需要用一次魔法。 每个箱子内都只有开自己的钥匙;需要用两次魔法。 那么期望使用的魔法次数即为(1+2)/2 = 1.5 次。 n=3时, 巷子内的钥匙分布有六种情况: 1->1 , 2->2 , 3->3;需要用三次魔法。 1->1 , 2->3 , 3->2;需要用两次魔法。 1->2 , 2->3 , 3->1;需要用一次魔法。 1->2 , 2->1 , 3->3;需要用两次魔法。 1->3 , 2->1 , 3->2;需要用一次魔法。 1->3 , 2->2 , 3->1;需要用两次魔法。 因此期望为(3+2+1+2+1+2)/6 = 11/6次。 |
最新文章
- 解决php中json_decode的异常JSON_ERROR_CTRL_CHAR
- CentOS 7下的 Mysql 主从配置
- sql 数字转人民币大写函数(两种方法)
- 百度ueditor代码高亮显示
- 家有学霸的CEO
- C# 调用 WebService 连接ORACLE 11g
- UVa 1587 Box
- Asp.net MVC4 使用EF实现数据库的增删改查
- Windows Server以服务方式部署Tomcat
- JS 事件派发器EventDispatcher
- typedef 摘自百度百科
- 一.C#基础:标识符和关键字
- JAVA主流框架---SSM整合
- python with open as f写中文乱码
- (转)Spring Boot(八):RabbitMQ 详解
- hdu1561 树形dp,依赖背包
- chrome shortkeys
- sql update操作结果
- Servlet基本_Filter
- pandas 操作 excel
热门文章
- SQL/T-SQL实例参考-2
- The &#39;microsoft.jet.oledb.4.0&#39; provider is not registered on the local machin
- 借助百度云API进行人脸识别
- lamp centos下一键安装
- CAP理论中的P到底是个什么意思
- 【java】AtomicReference介绍
- Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换
- Wiki凭什么持续得到开发人员和团队的喜爱
- BDD 相关整理---介绍
- [APIO2009]抢掠计划 tarjan缩点+spfa BZOJ1179