考虑这样一个事实:较小边与较小边比较,较大边与较大边比较一定最优
不然,较大边与较小边比较有可能不能塞入,较小边与较大边比较有可能浪费,不更优,或者说,后者能够塞入的前者一定能塞入,前者能塞入的后者不一定能塞入
考虑每次维护当前较小边的最大值和当前较大边的最大值即可
时间复杂度:O(n)
#include<bits/stdc++.h>
using namespace std;
int n, x, y, a, b;
char c;
int main (void)
{
scanf("%d",&n);
for (; n; n--) {
c=getchar(); scanf("%c%d%d",&c,&x,&y);
if (x>y) swap(x,y);
if (c==‘+‘) {
a=max(a,x);
b=max(b,y);
}
else {
if (a<=x&&b<=y) puts("YES");
else puts("NO");
}
}
return 0;
}
Selection Contest for Rookies 4 E Polycarp's New Job
原文:https://www.cnblogs.com/chinakevin/p/12829046.html