哪路大神帮帮我解决这道题啊
2024-02-24 21:57:26
发布于:浙江
神奇的口袋
蜗蜗有一个神奇的口袋,口袋可以装下体积总和为 m
的宝石。
一共有 n+1
种不同的宝石。第 i (1≤i≤n)
种宝石一共有 ai
颗,每一颗的体积都是 bi
(保证 bi=2x
,其中 x
是一个正整数,2x
表示 x
个 2
的乘积,比如说 24=2×2×2×2
)。第 n+1
种宝石有无限多颗,每一颗的体积都是 1
。
现在蜗蜗想用数量最少的宝石装满口袋,请求出蜗蜗最少要使用多少颗宝石。
输入格式
第一行一个正整数 test
表示数据组数。
对于每组数据,第一行两个整数 n,m
。接下来 n
行,每行两个整数 ai,bi
分别表示一种宝石的数量和体积。
输出格式
对于每组数据,输出一行一个整数,表示蜗蜗最少要使用多少颗宝石。
样例输入
2
2 7
1 2
1 4
2 6
1 2
1 4
样例输出
3
2
数据规模
对于 30%
的数据,保证所有的 ai=1
。
对于 100%
的数据,保证 1≤test≤105,1≤n≤31,0≤m<231,1≤ai<231,2≤bi<231
,bi
已经从小到大排好序了并且两两不同。
全部评论 3
有没有题号,你这个排版看得很累。
2024-02-25 来自
1《24=2×2×2×2》
2024-02-29 来自 广东
0#include<bits/stdc++.h>
using namespace std;
long long a,n,nn,m[5007][7];
int main(){
cin>>a;
for(int i=1;i<=a;i++){
scanf("%lld%lld",&n,&nn);
for(int i=1;i<=n;i++)scanf("%lld%ll2024-02-28 来自 浙江
0
有帮助,赞一个