• GCPC2014 G Gold Rush


    题意:有一块2^n大的金块,你每一次只能把一块变成相同的两快(当然大小是原来的1/2),问你现在有容量a,b,a+b = 2^n的背包,多少次能够使得a,b把这所有的金块都装下去。

    解题思路:递归。

    解题代码:

     1 // File Name: f.cpp
     2 // Author: darkdream
     3 // Created Time: 2015年03月15日 星期日 12时19分58秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 
    26 using namespace std;
    27 LL a, b ;
    28 LL  p(int n)
    29 {
    30   LL sum = 1; 
    31   for(int i=  1;i <= n;i ++)
    32       sum *=2 ;
    33   return sum; 
    34 }
    35 int solve(LL t, LL now)
    36 {
    37     //printf("%lld %lld
    ",t,now);
    38     if(t == now)
    39         return 0; 
    40     return 1 + solve(t/2,abs(now-t/2));
    41 }
    42 int main(){
    43    int  t ;
    44    scanf("%d",&t);
    45    while(t--)
    46    {
    47        int n ;
    48        scanf("%d %lld %lld",&n,&a,&b);
    49        printf("%d
    ",solve(p(n),a)-1); 
    50    }
    51 return 0;
    52 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    不用google 是不行的
    一些主题
    腾讯cdc空间
    断言assert的使用
    malloc()和free()的相关知识
    linux上面的sz,rz命令与ssh的配合
    寻找第k小的元素
    c语言中字符串处理函数
    详解之#ifdef和#ifndef
    搭建测试环境linux静态链接库与动态链接库的区别及动态库的创建
  • 原文地址:https://www.cnblogs.com/zyue/p/4340558.html
Copyright © 2020-2023  润新知