题目描述

一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子)

显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以到达目标。

现在CC想知道,最少需要买多少新瓶子才能达到目标呢?

输入输出格式

输入格式:

一行两个正整数, N,KN,K(1<=N<=10^9,,K≤1000)。

输出格式:

一个非负整数,表示最少需要买多少新瓶子。

输入输出样例

输入样例#1:

3 1
输出样例#1:

1
输入样例#2:

13 2
输出样例#2:

3
输入样例#3:

1000000 5
输出样例#3:
 15808
 
 

解析:

由题意可知,每次只能由两个相同水量的杯子倒在一起,自然而然地想到和2n有关系。
可以理解为贪心,贪心策略是每次去取现有杯子数的2的最多次方,把他们合并,合并k次,如果剩下杯子,就去再凑2的最小次方,缺多少就得买多少,,,
这是海淀区赛的第一题,我在考场上忘记判零了,还好数据水。

 最后上AC代码

 #include<iostream>
using namespace std;
long long n,k,f,ans,s;
int main()
{
cin>>n>>k;
ans=n;
for(int i=;i<=k;i++)
{
f=;
while(f<ans)
{
f*=;
}
f/=;
ans-=f;
}
if(f>ans)cout<<f-ans;
else cout<<;
return ;
}

  


杯子(glass)的更多相关文章

  1. 杯子 (glass)

    题目 试题1:杯子 (glass)  源代码:glass.cpp  输入文件:glass.in  输出文件:glass.out  时间限制:1s  空间限制:256MB 题目描述 小明买了N个容积可以 ...

  2. words2

    餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘 ...

  3. CF #296 (Div. 1) A. Glass Carving 线段树

    A. Glass Carving time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  4. [codeforces 528]A. Glass Carving

    [codeforces 528]A. Glass Carving 试题描述 Leonid wants to become a glass carver (the person who creates ...

  5. Nagios Looking Glass 本地文件包含漏洞

    漏洞名称: Nagios Looking Glass 本地文件包含漏洞 CNNVD编号: CNNVD-201310-682 发布时间: 2013-10-31 更新时间: 2013-10-31 危害等级 ...

  6. Codeforces 527C Glass Carving

    vjudge 上题目链接:Glass Carving 题目大意: 一块 w * h 的玻璃,对其进行 n 次切割,每次切割都是垂直或者水平的,输出每次切割后最大单块玻璃的面积: 用两个 set 存储每 ...

  7. Google Glass应用开发探索

    摘要:2012年6月的Google开发者大会上,作者有幸预定到了Google Glass.8个月后,她收邀参加了Google纽约总部举行的Google Glass Foundry开发大赛.在为期两天的 ...

  8. <转>如何测试一个杯子

    在软件测试的面试中, 经常会碰到类似的问题. 比如:如何测试一个杯子, 或者如何测试一只笔. 要求你设计20个以上的test case. 这类的面试题目,是考察面试者是否熟悉各种软件测试方法, 设计t ...

  9. Codeforces 527C Glass Carving(Set)

    意甲冠军  片w*h玻璃  其n斯普利特倍  各事业部为垂直或水平  每个分割窗格区域的最大输出 用两个set存储每次分割的位置   就能够比較方便的把每次分割产生和消失的长宽存下来  每次分割后剩下 ...

随机推荐

  1. Python_pickle

    pickle是一个可以将任意一个对象存储在硬盘文件中的工具. 更新:Python3中用法变了:  https://www.cnblogs.com/fmgao-technology/p/9078918. ...

  2. ORM外键关联

    #coding=utf-8 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarativ ...

  3. 20191114PHP文件操作

    <meta charset="utf-8"><?php// $fn=fopen("c:\\abc.txt","w"); / ...

  4. vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT和vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

    今天在配置VSFTPD过程中遇到两个错误 1是启动失败,通过 SERVICE VSFTPD STATUS 查看到报错 May 02 16:06:58 debian systemd[1]: Starti ...

  5. iconfont图标symbol引用方式,有的图标不能通过设置color样式来修改颜色的解决办法

    现象:iconfont安装后的图标,是通过symbol引用方式,有的图标不能通过color修改颜色的解决办法,有的又可以. <svg class="icon" aria-hi ...

  6. nodeJs express4 框架

    Express 4 框架 一.安装

  7. NotePad++安装 html.css.js智能提示【转】

    https://www.cnblogs.com/alirong/archive/2012/04/12/2443971.html

  8. python代码整体左移或右移

    IDE 是  PyCharm 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab

  9. python输出转义字符

    转义字符在字符串中不代表自己,比如\n代表回车,不代表\n字符,那我想输入转义字符本身呢? 答:在字符串前面加个r 如print(“aa\nbb”) 会输出aa bb 如print(r"aa ...

  10. 注解@requestBody自动封装复杂对象 (成功,自己的例子封装的不是一个复杂对象,只是一个简单的User对象,将jsp页面的name转成json字符串,再用JSON.stringify()传参就行了)

    注意:ajax向后台传值的时候,必须加上contentType:"application/json"; springmvc的注解@requestBody可以通过页面提交json来自 ...