题目描述
blablabla
样例
存储数据技巧:需要一次存一对数,同时又需要根据其中一个数进行排序,同时还需要可以遍历
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 5010;
int a,b,w,n;
// 需要一次存一对数,同时又需要根据其中一个数进行排序,同时还需要可以遍历
// 存数组无法满足,存结构体,并且构造比较器
// int x[N],y[N];
struct G{
int attack;
int life;
bool operator< (const G& W){
return life < W.life;
}
}q[N];
int res;
int main(){
scanf("%d%d",&n,&w);
scanf("%d%d",&a,&b);
for(int i = 0;i < n;i++) scanf("%d%d",&q[i].attack,&q[i].life);
// 排序是包括第一个,不包括最后一个
sort(q,q + n);
for(int i = 0;i < n;i++){
if(a + b < q[i].attack){
continue;
}else{
w -= q[i].life;
// 注意结束条件
if(w < 0) break;
res++;
}
}
printf("%d",res);
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla