开始写了两个for,就猜到超时,没想到真的超时,其实也想过队列但发现找不到怎么再找同一个棚里的,早该想到可以再加一个for了,但大佬的方法确实巧妙,已经跪了两个贪心了,伤心
#include#include #include #include #include using namespace std;const int maxn=50000;int usd[maxn];typedef struct note{ int a,b,idx; bool operator <(const note &p) const//优先队列,输出组大项,所以定义大于运算符,强行输出最小 { if(b==p.b) return a>p.a; return b>p.b;//输出的是最小范围 }};note c[maxn];priority_queue qq;bool cmp(const note &p,const note &q){ if(p.a==q.a) return p.b