A题题意:给定n个房子及其价格,自己有B美元,求最多能买多少个房子
题解:将房子价钱排序后从小到大购买即可。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
int n;
int budgt;
cin>>t;
for (int j = 1; j <= t; j++) {
cin>>n;
cin>>budgt;
vector<int> dp;
for (int i = 1; i <= n; i++) {
int x;
cin>>x;
dp.push_back(x);
}
sort(dp.begin(), dp.end());
int ans = 0;
for (int i = 0; i < dp.size(); i++) {
if (budgt >= dp[i]) {
budgt -= dp[i];
ans++;
}
}
printf("Case #%d: %d\n", j,ans);
}
return 0;
}
B题题意:桌子上有N堆盘子,每堆有K个盘子,每个盘子有一个观赏值,对于每一堆盘子,每次只能从上打下拿盘子,求最多拿取P个盘子能