题意:给定两个音量,需要从l调到r,每次只能向上一下或者向下(1,2,4,2^n)下(连续向下的情况下),每次可以停歇或向上来打断向下的连续性,最少需要多少步?

思路:当l小于r时显然答案是r-l,当l>r时那么不停地下降到r附近,此时只需要在r的上方和下方挑选最少的步数即可。注意向上也可以打断向下的连续性。

code:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF=0x3fffffff;
const int inf=-INF;
const int N=105;
const int M=2005;
const int mod=1000000007;
const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define cpy(x,a) memcpy(x,a,sizeof(a))
#define ft(i,s,n) for (int i=s;i<=n;i++)
#define frt(i,s,n) for (int i=s;i>=n;i--)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define lrt  rt<<1
#define rrt  rt<<1|1
#define middle int m=(r+l)>>1
#define lowbit(x) (x&-x)
#define pii pair<int,int>
#define mk make_pair
#define IN freopen("in.txt","r",stdin)
#define OUT freopen("out.txt","w",stdout)int read() {char ch;while (ch = getchar(), !isdigit(ch));int res = ch - '0';while (ch = getchar(), isdigit(ch))res = res * 10 + ch - '0';return res;
}
ll powm(ll a,ll n){ll ans=1;while (n){if (n&1) ans=ans*a%mod;a=a*a%mod;n>>=1;}return ans%mod;
}
//++++++++++++密++++++++++++++封++++++++++++++++++++线ll n,m;
ll sol(ll n,ll stp){if (n<=m) return max(0LL,m-n-stp);ll nn=n,p=1,sp=0;while (n-m>0){n-=p;p<<=1;sp++;if (n==m) return sp;}sp+=min(sol(n+p/2,++stp),sol(max(0LL,n),stp));return sp;
}
int main()
{int T=read();ft(ca,1,T){scanf("%lld%lld",&n,&m);cout<<sol(n,0)<<endl;}
}

hdu 5802——Windows 10相关推荐

  1. windows10 安装linux,windows 10安装linux(ubuntu)子系统

    windows10安装ubuntu子系统系统 之前一直在虚拟机中使用linux系统,但是不是很方便,后来发现windows下也有了linux系统.感觉还不错 1. 打开windows应用市场micro ...

  2. Windows 10下编译安装Hadoop2.6

    转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...

  3. mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...

    本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...

  4. w ndows连接USB不正常,Raspberry Pi Zero W 连接电脑 – 针对Windows 10 缺少RNDIS驱动

    在网上有很多关于Raspberry Pi Zero连接电脑的帖子,但是发现在windows 10 系统上发现没有发现RNDIS 驱动,这个驱动在其他系统上会自动安装,但是在windows 10 上显示 ...

  5. Windows 10完美识别3TB硬盘实录

    京东上买了一块3TB希捷酷鱼硬盘,已经安装到PC机箱中,操作系统是Windows 10. 启动Windows 10,进入操作系统,没有识别出该盘,系统也没有报错.为了让windows 10识别并格式化 ...

  6. windows和linux添加引导文件,Linux与Windows 10用grub引导教程-Go语言中文社区

    前言 去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程.由于去年对于写教程还 ...

  7. Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似

    正如你在截图中所看到的那样,Linuxfx的外观和感觉与Windows 10非常类似,甚至还可以得到一个带有Windows开始按钮的开始菜单,然而,这个实际上可能是一个问题,因为微软可能不喜欢在另一个 ...

  8. Windows 10离线安装.NET Framework 3.5

    最新的Win10客户端系统中,微软为我们预装了.NET Framework 4.5.而部分应用需要依赖.NET Framework 3.5才能正常运行(如windows live writer),当我 ...

  9. Windows 10预览版14316开启Bash命令支持

    00x0 前言 4月7日凌晨,微软推送了最新的Windows 10一周年更新预览版14316,其中重要的是原生支持Linux Bash命令行支持. 00x1 问题 如何开启Linux Bash命令行? ...

最新文章

  1. 技术图文:如何实现汉诺塔问题?
  2. 日期格式化的“疑难杂症”
  3. Redis系列(四)-低成本高可用方案设计
  4. Python3位运算符
  5. Docker框架使用系列教程(六)创建镜像
  6. Android Studio删除无用的资源
  7. 95-240-050-原理-State-RocksDBStateBackend
  8. java 开发时常用的工具类包 commons-lang3
  9. python编辑数学函数图形_Python 绘制你想要的数学函数图形
  10. 使用官网支持工具制作富士施乐打印机一键安装的程序
  11. 无损分区工具对电脑硬盘分区,介绍一款硬盘无损分区工具
  12. python写出租车计费系统_基于VHDL的出租车计费器
  13. iPhone的AFC(Apple File Conduit)
  14. 从铁路订票系统问题看应用监控的作用
  15. mysql 1114错误_mysql出现错误编码1114的解决方法
  16. 【Haskell】函子 · 应用函子 · 单子
  17. F1值(F-Measure)、准确率(Precision)、召回率(Recall) 菜鸡版理解
  18. 涉密计算机用户登录密码多久换一次,涉密计算机口令应根据其密级进行设置并定期更换,秘密级计算机口令更换周期不得超过30天,机密级计算机口令更换周期不得超过10天 - 作业在线问答...
  19. 港大黄凯斌:6G时代的边缘智能,香农与图灵的相遇
  20. 计算机网络复习04——网络层

热门文章

  1. MUI调用原生自定义方法实现计算缓存与清空缓存
  2. vue 简单实用的elementUI表格封装
  3. uestc summer training #2
  4. Java 系列之spring学习--spring搭建(一)
  5. mysql慢查询工具
  6. python基础:迭代器、生成器(yield)详细解读
  7. mysql 5.1由于Host为localhost的用户为空,密码为空,导致本地用户无法登陆。
  8. 介绍“Razor”— ASP.NET的一个新视图引擎
  9. 程序开发基础学习四(boost::signal2 函数学习)
  10. java executor spring_Spring+TaskExecutor实例