微软2017年预科生计划在线编程笔试-#1489 : Legendary Items
来源:互联网 发布:定陶知行劳务电话 编辑:程序博客网 时间:2024/05/16 18:13
http://hihocoder.com/problemset/problem/1489
题意理解:每次获得一个物品之后都会清空初始概率为P/(pow(2, have)), 实际上获得N个东西的过程分别是独立的,并且N》=8之后的初始概率都是0,所以只需要分别算《=7和8的期望次数,这个用高中的期望定义暴力算就好了
急转弯:N》=8的其实和8一样
算法:无
数据结构:无
#include <iostream>#include <cstdio>#include <cmath>using namespace std;int P, Q, N;double calcu(int start, int add){ double res = 0; double pre = 1.0; int now = start; for(int i = 0; ; i++) { if(now >= 100) { res += pre * 1.0; break; } res += pre * 1.0; pre = pre * (1 - now / 100.0); now += add; } return res;}int main(){ scanf("%d%d%d", &P, &Q, &N); double ans = 0; if(N >= 8) { ans = (N - 7) * calcu(0, Q); N = 7; } for(int i = 1; i <= N; i++){ int have = i - 1; ans += calcu(P / (int)(pow(2, have) + 0.1), Q); } printf("%.2f\n", ans); return 0;}
from __future__ import print_function##'get familiar with python'__author__ = 'hjkruclion'import sysimport numpy as npdef read_int(): return list(map(int, sys.stdin.readline().split()))P, Q, N = read_int()def calcu(start, add): res = 0 now = start pre = 1.0 for i in range(10000): if now >= 100: res += pre * 1.0 break res += pre pre = pre * (1 - now / 100.0) now += Q return resans = 0if N >= 8: ans += calcu(0, Q) * (N - 7) N = 7for i in range(1, N + 1): have = i - 1 ans += calcu(int(P // int(pow(2, have) + 0.1)), Q)print('%.2f'%(ans))
阅读全文
0 0
- 微软2017年预科生计划在线编程笔试-#1489 : Legendary Items
- 微软2017年预科生计划在线编程笔试 题目1 : Legendary Items
- 微软2017年预科生计划在线编程笔试题Legendary Items
- [hihocoder1489][微软2017年预科生计划在线编程笔试][Legendary Items]
- 微软2017年预科生计划在线编程笔试_上
- 微软2017年预科生计划在线编程笔试第二场B题Diligent Robots
- 微软2017年预科生计划在线编程笔试,附解题思路
- 【微软2017年预科生计划在线编程笔试第二场 A】Queen Attack
- 微软2017年预科生计划在线编程笔试第二场-#1497 : Queen Attack
- 微软2017年预科生计划在线编程笔试第二场-#1498 : Diligent Robots
- 微软2017年预科生计划在线编程笔试第二场-#1499 : A Box of Coins
- 微软2017年预科生计划在线编程笔试第二场-#1500 : EL SUENO
- 微软2017年预科生计划在线编程笔试-#1490 : Tree Restoration
- 微软2017年预科生计划在线编程笔试-#1491 : Monster Killing
- 微软2017年预科生计划在线编程笔试-#1492 : Parentheses Sequence
- 微软预科生计划skype在线面试题
- 2017微软预科生计划面试(三面全)
- [hihoCoder 1187] Divisors (微软预科生计划-探星夏令营在线测试)
- 如何打造一个日均PV千万级别的大型系统?(2017-09-13 周金桥 DBAplus社群)
- 消费金融大潮来了,银行必须打出这套进攻+防守的组合拳
- 树莓派学习系列——使用C++来获取usb设备ID,效果同lsusb
- UE4(四)获取UE4源码以及使用源码编译引擎
- HDU 6203 ping ping ping lca 线段树成段更新
- 微软2017年预科生计划在线编程笔试-#1489 : Legendary Items
- Java String.split()用法小结
- sublime的各种问题
- 114. Flatten Binary Tree to Linked List
- eclipse建立webservice服务端与客户端
- LeetCode.153
- codewar-6kyu-Vasya
- 2017年执业药师考试中药炮制学常见考点小结
- 解决session超时的时候会出现双层登录窗口的问题