51Nod-1836-战忽局的手段
2017-07-09 21:45
330 查看
ACM模版
这里提供了两个版本的代码,一个
Two:
描述
题解
这个题推导倒是很简单,关键是卡精度了,用java或者
py都比较容易写,当然,用
C++的
__float128也是可以的,但是不知道这个东西在比赛时是否可以正常使用。
这里提供了两个版本的代码,一个
C++版(代码 One)的,一个
Java版(代码 Two)的。
代码
One:#include <cstdio> using namespace std; __float128 QPow(__float128 x, long long p) { __float128 ret = 1.0; while (p) { if (p & 1) { ret = ret * x; } x = x * x; p >>= 1; } return ret; } int T; __float128 ans; long long n, m; int main() { scanf("%d", &T); while (T--) { scanf("%lld%lld", &n, &m); ans = n - n * QPow((__float128)(n - 1) / n, m); printf("%.7f\n", (double)ans); } return 0; }
Two:
import java.io.BufferedInputStream; import java.math.BigDecimal; import java.math.MathContext; import java.util.Scanner; public class Main { private static Scanner sc; public static BigDecimal QPow(BigDecimal a, long k) { BigDecimal res = BigDecimal.ONE; while (k != 0) { if ((k & 1) != 0) { res = res.multiply(a, MathContext.DECIMAL128); } a = a.multiply(a, MathContext.DECIMAL128); k >>= 1; } return res; } public static void main(String[] args) { sc = new Scanner(new BufferedInputStream(System.in)); long n, k; int T = sc.nextInt(); for (int i = 1; i <= T; i++) { n = sc.nextLong(); k = sc.nextLong(); BigDecimal a = BigDecimal.valueOf(n), ans; a = BigDecimal.ONE.divide(a, MathContext.DECIMAL128).negate().add(BigDecimal.ONE); ans = QPow(a, k).negate().add(BigDecimal.ONE, MathContext.DECIMAL128); ans = ans.divide(BigDecimal.ONE.subtract(a, MathContext.DECIMAL128), MathContext.DECIMAL128); System.out.println(ans); } } }
相关文章推荐
- 51nod 1836:战忽局的手段
- 51NOD 1836 战忽局的手段(矩阵乘法加速+__float128精度问题+概率期望)——算法马拉松20(告别美国大选及卡斯特罗)
- 51nod 1836 战忽局的手段 矩阵乘法
- 51nod 1836 战忽局的手段 (期望)
- 51nod 1836 战忽局的手段
- 51nod 1836:战忽局的手段(期望)
- 51nod 1836 战忽局的手段
- 51nod 1836(矩阵快速幂,求期望,__float128)
- 【51Nod1836】战忽局的手段
- 51nod算法马拉松20 C、战忽局的手段
- 51nod 1001 数组中和等于K的数对
- 51nod 1490-多重游戏(树上博弈)
- 51nod 活动安排问题 《贪心+dp》
- 51nod 1273 旅行计划——思维题
- 51NOD 1094 和为k的连续区间(前缀和 + map)
- 51nod 1062 序列中最大的数
- [51nod]1264 线段相交
- 51nod 1119 机器人走方格V2 lucas定理
- 51NOD 1100 斜率最大
- 51nod 1279 单调栈