没想到是枚举,还推了规律好久,应为对Java的不了解,所以没想到枚举,或者感觉枚举太麻烦会超时,首先最多枚举2的4000次方,4000重循环不会超时,每次2的k次方的计算也不会超时,因为pow复杂度是lg。所以,应该直接暴力,开始思路被带偏,或者说对Java的不了解,没做出来,所以直接枚举能放下的最小的就行了,如果2^k-1能放下,就不放2^k,对2^(k-1)进行判断,学了一波java大数,顺便当模板耍吧。

--------------------------------------因为热爱,所以坚持--------------------------------------------

import java.math.*;
import java.util.*;public class Main
{  public static void main(String[] args){Scanner cin=new Scanner(System.in);int t=cin.nextInt(),kkk;for(int i=1;i<=t;i++){BigInteger n,m,sum,ans,ttt;n=cin.nextBigInteger();m=cin.nextBigInteger();ans=BigInteger.valueOf(0);sum=BigInteger.valueOf(0);int cnt=0;while(sum.compareTo(n)<0){ttt=BigInteger.valueOf(2).pow(cnt).multiply(m);sum= sum.add(ttt);cnt++;}for(int j=cnt;j>=0;j--){BigInteger tmp= BigInteger.valueOf(2).pow(j).subtract(BigInteger.ONE);tmp=tmp.multiply(m);if(tmp.compareTo(n)>=0)continue;tmp=BigInteger.valueOf(2).pow(j);ans=ans.add(tmp);//System.out.println(ans+" "+tmp);BigInteger kk=n.divide(tmp);kk=kk.min(m);tmp= tmp.multiply(kk);n=n.subtract(tmp);}System.out.println(ans);}}}  

ZOJ 3987 Numbers(枚举)相关推荐

  1. ZOJ 3987 Numbers 2017CCPC秦皇岛站G题 大整数 二进制 贪心

    题目:https://cn.vjudge.net/problem/ZOJ-3987 题意:给出一个数n(不超过4000个十进制数字),将其分成m(不超过10的100次方)个数,要求这m个数的和等于n. ...

  2. ZOJ 3987 2017CCPC秦皇岛 G:Numbers(高精度+贪心)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3987 题意: 给你两个数n和m,你要将n拆成m个数,使得这m个数 ...

  3. Numbers ZOJ - 3987[思维暴力]

    题意:给出一个数字N以及一个M,要求把N分为M部分且满足 N=a1+a2+a3+⋯+amN = a_1 + a_2 + a_3 + \dots+a_mN=a1​+a2​+a3​+⋯+am​ 询问如何让 ...

  4. Problem solved list

    Time: 2017.11.7 :(tot solved 4) 组队训练(CCPC秦皇岛)solved 5 : ZOJ - 3981 Balloon Robot 思维 ZOJ - 3987 Numbe ...

  5. Python基础总结(4)

    元组:戴上枷锁的列表 tuple1=(1,2,3,4,5,6,7,8) 更新元素方法 temp=('aaa','vvv','ccc','ddd') temp=temp[:2]+('hehe',)+te ...

  6. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  7. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

  8. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  9. 两数之和、三数之和、四数之和、K数之和

    两数之和.三数之和.四数之和和K数之和是最近听室友提起的几道有意思的基础题,可以说是把双指针运用的淋漓尽致.(K数之和其实是一个动态规划的题,此处因为满足*数之和的的结构,放在一起对比提一下). 1. ...

  10. 杭电OJ题目分类(转载)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

最新文章

  1. 如何用比特币现金地址和数字签名证明所有权
  2. 来来来!DD带大家一起赢台MacBook Pro回家过年!
  3. 让软件版本信息自动引用SVN修订版本号
  4. Git复习(十)之常见报错和疑问
  5. nlp3-有限自动机FLandFA
  6. ERR! sharp EACCES: permission denied, mkdir ‘/root/.npm/_libvips‘......
  7. bigdecimal判断等于0_Linux | shell脚本-比较判断和运算语句
  8. QQ 邮箱漂流瓶将下线;华为美国公司起诉美商务部;Ubuntu 不会放弃 32 位应用程序支持 | 极客头条...
  9. IOS开发之——AFN-文件下载(03)
  10. 网络扫描实验(win10使用nmap,X-Scan工具使用)
  11. Datax-HdfsWriter如何实现支持decimal类型数据写入
  12. Spring MVC 第一个HelloWorld程序
  13. 分析计算机网络的功能,分析计算机网络管理系统的功能及实现
  14. 获取html下拉菜单selected,原生js获取select下拉框的selected的option项
  15. 使用karma + mocha + sinon 测试 Ajax 请求
  16. numpy迭代数组nditer、flat
  17. 02计蒜客 002蓝桥模拟
  18. acer 4750 Fn+亮度键(左右方向键亮度调节)无效问题的解决办法
  19. 如何调整jupyter notebook行间显示图片的大小
  20. 关于谷歌收购摩托罗拉移动的评论

热门文章

  1. 用nodejs和vue实现消息盒子
  2. Python使用Requests库爬取网页数据
  3. 如何解决竞价推广中的恶意点击?
  4. 数据挖掘算法和实践(三):朴素贝叶斯(mushrooms蘑菇数据集)
  5. 如何免费在本地播放flv格式的视频
  6. 赫茨伯格工作丰富化模型(转载)
  7. Bootstrap知识点概述
  8. MFC中TXT文件读写
  9. 逻辑推理题-用C++实现(2)--黑与白
  10. 斐波那契数列(矩阵快速幂)