hdu4577(大数+分析)
来源:互联网 发布:侠客风云传 招式数据 编辑:程序博客网 时间:2024/06/05 23:56
题意:
1,2,4,8,16........1*(2^k)
3,6,12,24..........3*(2^k)
5,10,20,40.........5*(2^k)
2*x-1,............(2*x-1)(2^k)
1,2,4,8,16........1*(2^k)
3,6,12,24..........3*(2^k)
5,10,20,40.........5*(2^k)
2*x-1,............(2*x-1)(2^k)
解题思路:球是按照上面的序列放的(贪心思想),但是由于m<=25,所以对于每组序列只要求的k的大小,然后除以m,相加就是答案。对于每一组序列的划分如下:[2^0,2^(m-1)]、[2^m, 2^(2*m-1)]、最后解(2*x)*(2^(k*m-1)) <= n即可,枚举k这样就不会超时。
代码如下:
import java.util.*;import java.io.*;import java.math.*;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner cin = new Scanner(System.in);int t = cin.nextInt();while(t-- > 0){BigInteger n = cin.nextBigInteger();n = n.multiply(BigInteger.valueOf(2));int k = cin.nextInt();BigInteger m = BigInteger.valueOf(2).pow(k);BigInteger ans = BigInteger.ZERO;while(1 > 0){ n = n.divide(m);if(n.compareTo(BigInteger.ZERO) == 0)break;ans = ans.add( n.add(BigInteger.ONE).divide(BigInteger.valueOf(2)) );}System.out.println(ans);}}}
0 0
- hdu4577(大数+分析)
- 找规律hdu4577
- 大数运算分析
- 大数相乘-算法分析
- 大数运算(超长整数运算)算法的简单分析
- 第K大数 算法分析、设计与实现(Java)
- 大数运算(大数之和)
- 大数整除(大数mod)
- 五大数据统计分析软件
- noj1011 大数加法 思路分析
- (大数乘小数、大数加小数、大数相乘、大数阶乘、大数进制转换)
- 大数取余、大数比较、大数相加(更新中)
- 大数运算(大数加法and大数乘法)
- HDU4577(2013年ACM杭州赛区邀请赛B题)
- hdu4577 X-Boxes ACM-ICPC杭州赛区全国邀请赛 2
- 大数模板(大数乘小数)
- 大数相乘(大数阶乘模板)
- 大数A*B(大数乘) 浙江工业大学
- 代理缓存服务器知识点整理
- POJ 1016 - Numbers That Count
- UVA 11019 字符矩阵哈希
- 黑马程序员_Java基础05天日志
- STL set和multiset
- hdu4577(大数+分析)
- listView 不能正常显示
- hdu1068——Girls and Boys
- 在Java程序中使用逻辑块的技巧
- HDU 2298 Toxophily
- 怎样将游戏从Unity导到iOS设备上
- 对类前置声明和包含头文件的一点理解
- windows bluetooth
- ArtifactDescriptorException的解决方法