悬两关——站外题WA求条!
  • 板块题目总版
  • 楼主Hanrui1206
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/15 22:44
  • 上次更新2024/6/16 10:42:43
查看原帖
悬两关——站外题WA求条!
1283944
Hanrui1206楼主2024/6/15 22:44

题目描述
鱼大大为了给羊大大过生日,于是跑到了商城准备买一堆不同价格的礼物送给羊大大。

商城里礼物价格分别是 11 元, 22 元, 44 元, 88 元, 1616 元....后面一个是前面的 22 倍。每个价格的商品只有 11 个,鱼大大可以随意挑选。

为了打肿脸充胖子,鱼大大觉得只有花至少 AA 元买礼物才不会掉面子。然而鱼大大带的钱有是有限的,所以礼物的价格合计不能超过 BB 元。

问鱼大大最多能买多少个礼物?

输入格式
多组测试。第一行一个整数 TT,表示测试组数量。 接下来 TT 行,每行 22 个整数为一组,为鱼大大至少要花的钱和最多能花的钱。

输出格式
每行一个整数表示鱼大大最多能买多少礼物。

样例
Input 1

2
16 25
4 8

Output 1

4
3

样例解释
对于第一组数据: 鱼大大可以买 11 元、 22 元、 44 元、 1616 元这 44 个礼物共计 2323 元;

对于第二组数据: 鱼大大可以买 11 元、 22 元、 44 元这 33 个礼物共计 77 元 (方案可能不唯一,只需输出最多数量)

25pts求调

#include <bits/stdc++.h>
using namespace std;
long long t, a, b, sum, x[63]={1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1125899906842624, 2251799813685248, 4503599627370496, 9007199254740992, 18014398509481984, 36028797018963968, 72057594037927936, 144115188075855872, 288230376151711744, 576460752303423488, 1152921504606846976, 2305843009213693952, 4611686018427387904};

int main() {
    cin>>t;
    for(int i=1; i<=t; i++) {
        sum=0;
        cin>>a>>b;
        for(int j=0; j<=63; j++) {
            if(b>=x[j]) {
                b-=x[j];
                sum+=1;
            } else {
                break;
            }
        }
        cout<<sum;
        if(i!=t) cout<<endl;
    }
    return 0;
}
2024/6/15 22:44
加载中...