题目是P1705吃苹果的最大数目
分析,对于每个已经收获的苹果,我们的决策总是先吃腐烂时间早的,因此我们用优先队列存储二元组[苹果数量,腐烂时间],同时每次吃的时候我们考虑优先队列的头部,如果头部的苹果不满足要求,我们就直接丢掉,继续查看头部,直到满足要求的苹果出现或者队列为空,代码如下:
struct cmp{
bool operator()(const pair&a,const pair&b){
return a.second>b.second;;
}
};
int eatenApples(vector& apples, vector& days) {
int n=apples.size();
priority_queue,vector>,cmp>q; //优先队列
int ans=0;
int i=0;
while(i 


