bzoj 1192 二进制】的更多相关文章

原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1192 继续刷水题,二进制思想 //By BLADEVIL var x :longint; begin read(x); writeln(trunc(ln(x)/ln())+); end.…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1192 题意: 鬼谷子带了a元钱,他要把a元钱分装在小袋子中,使得任意不大于a的数目的钱,都能用几个小袋子凑出来. 问你最少用几个小袋子. 题解: 砝码称重问题(二进制): 你可以自由设置砝码的数量和重量,使得a以内的任意重量都能被称出(只考虑砝码叠加),问你最少的砝码数量. 例如a = 48时,砝码为:1,2,4,8,16,17. 所以砝码数量 = a二进制下的位数 这道题一样啊,算二进…
(人生第一篇bzoj题解有点激动 首先介绍一下题目: 看它题目那么长,其实意思就是给定一个数a,求将其拆分成n个数,通过这n个数可以表示出1~a中所有数的方案中,求最小的n. 您看懂了嘛?不懂咱来举个栗子: 3可以变为(1,2)两个数(废话,我当然知道),使1,2可以表示出1,2,3这些数字.看到这道题就想到了不久前看到的二进制优化多重背包.简直一模一样. 我们想我们对于一个数P.我们可以将其分成两部分(1~P/2)与(P/2+1,P),我们思考:假设我们已经知道(1~P/2)至少需要m个数,那…
题解:鉴于二进制的思想来划分 #include <cstdio> int main(){ int n,d=0;scanf("%d",&n); while(1<<d<=n)d++; printf("%d\n",d); }…
十分巧妙的一道题. 考虑当前凑出$[1,i/2)$,那么再有一个 $i/2$,就可以凑出 [i/2+1,i). 注意,这里的 $i$ 都是 2 的 $k$ 次幂. 于是,我们只要找到 $i$ 使得 2 的 $i$ 次幂刚好大于 $m$ 即可. Code: #include<bits/stdc++.h> using namespace std; int main(){ long long n,k=2; cin>>n; int i; for(i=1;k<=n;++i) k*=2;…
1192: [HNOI2006]鬼谷子的钱袋 Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书.但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候.于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币…
1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3557  Solved: 2596[Submit][Status][Discuss] Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书.但是,他的行程安排得很满,他…
1192:鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1926  Solved: 1417 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1192 Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商 行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣…
1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书.但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候.于是,他决定事先做好准备,将…
Description 输入三个整数\(a, b, c\),把它们写成无前导\(0\)的二进制整数.比如\(a=7, b=6, c=9\),写成二进制为\(a=111, b=110, c=1001\).接下来以位数最多的为基准,其他整数在前面添加前导\(0\),使得\(a, b, c\)拥有相同的位数.比如在刚才的例子中,添加完前导\(0\)后为\(a=0111, b=0110, c=1001\).最后,把\(a, b, c\)的各位进行重排,得到\(a', b', c'\),使得\(a'+b'…