hdu 5802——Windows 10
题意:给定两个音量,需要从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相关推荐
- windows10 安装linux,windows 10安装linux(ubuntu)子系统
windows10安装ubuntu子系统系统 之前一直在虚拟机中使用linux系统,但是不是很方便,后来发现windows下也有了linux系统.感觉还不错 1. 打开windows应用市场micro ...
- Windows 10下编译安装Hadoop2.6
转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...
- mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...
本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...
- w ndows连接USB不正常,Raspberry Pi Zero W 连接电脑 – 针对Windows 10 缺少RNDIS驱动
在网上有很多关于Raspberry Pi Zero连接电脑的帖子,但是发现在windows 10 系统上发现没有发现RNDIS 驱动,这个驱动在其他系统上会自动安装,但是在windows 10 上显示 ...
- Windows 10完美识别3TB硬盘实录
京东上买了一块3TB希捷酷鱼硬盘,已经安装到PC机箱中,操作系统是Windows 10. 启动Windows 10,进入操作系统,没有识别出该盘,系统也没有报错.为了让windows 10识别并格式化 ...
- windows和linux添加引导文件,Linux与Windows 10用grub引导教程-Go语言中文社区
前言 去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程.由于去年对于写教程还 ...
- Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似
正如你在截图中所看到的那样,Linuxfx的外观和感觉与Windows 10非常类似,甚至还可以得到一个带有Windows开始按钮的开始菜单,然而,这个实际上可能是一个问题,因为微软可能不喜欢在另一个 ...
- Windows 10离线安装.NET Framework 3.5
最新的Win10客户端系统中,微软为我们预装了.NET Framework 4.5.而部分应用需要依赖.NET Framework 3.5才能正常运行(如windows live writer),当我 ...
- Windows 10预览版14316开启Bash命令支持
00x0 前言 4月7日凌晨,微软推送了最新的Windows 10一周年更新预览版14316,其中重要的是原生支持Linux Bash命令行支持. 00x1 问题 如何开启Linux Bash命令行? ...
最新文章
- 技术图文:如何实现汉诺塔问题?
- 日期格式化的“疑难杂症”
- Redis系列(四)-低成本高可用方案设计
- Python3位运算符
- Docker框架使用系列教程(六)创建镜像
- Android Studio删除无用的资源
- 95-240-050-原理-State-RocksDBStateBackend
- java 开发时常用的工具类包 commons-lang3
- python编辑数学函数图形_Python 绘制你想要的数学函数图形
- 使用官网支持工具制作富士施乐打印机一键安装的程序
- 无损分区工具对电脑硬盘分区,介绍一款硬盘无损分区工具
- python写出租车计费系统_基于VHDL的出租车计费器
- iPhone的AFC(Apple File Conduit)
- 从铁路订票系统问题看应用监控的作用
- mysql 1114错误_mysql出现错误编码1114的解决方法
- 【Haskell】函子 · 应用函子 · 单子
- F1值(F-Measure)、准确率(Precision)、召回率(Recall) 菜鸡版理解
- 涉密计算机用户登录密码多久换一次,涉密计算机口令应根据其密级进行设置并定期更换,秘密级计算机口令更换周期不得超过30天,机密级计算机口令更换周期不得超过10天 - 作业在线问答...
- 港大黄凯斌:6G时代的边缘智能,香农与图灵的相遇
- 计算机网络复习04——网络层
热门文章
- MUI调用原生自定义方法实现计算缓存与清空缓存
- vue 简单实用的elementUI表格封装
- uestc summer training #2
- Java 系列之spring学习--spring搭建(一)
- mysql慢查询工具
- python基础:迭代器、生成器(yield)详细解读
- mysql 5.1由于Host为localhost的用户为空,密码为空,导致本地用户无法登陆。
- 介绍“Razor”— ASP.NET的一个新视图引擎
- 程序开发基础学习四(boost::signal2 函数学习)
- java executor spring_Spring+TaskExecutor实例