classSolution { public: doublefar(double n1, double m1, double n2, double m2) { double ans; ans = (n1 - n2) * (n1 - n2) +(m1 - m2) * (m1 - m2); ans = sqrt(ans); return ans; } boolcheckOverlap(int r, int a, int b, int xa, int ya, int xb, int yb){ if ( far(xa, ya, a, b) <= r || far(xa, yb, a, b) <= r || far(xb, ya, a, b) <= r || far(xb, yb, a, b) <= r ) { returntrue; } elseif (a >= min(xa, xb) && a <= max(xa, xb) && b >= min(ya, yb) && b <= max(ya, yb)) { returntrue; } elseif( (far(xa, b, a, b) <= r && b <= max(ya, yb) && b >= min(ya, yb))|| (far(xb, b, a, b) <= r && b <= max(ya, yb) && b >= min(ya, yb))|| (far(a, ya, a, b) <= r && a <= max(xa, xb) && a >= min(xa, xb))|| (far(a, yb, a, b) <= r && a <= max(xa, xb) && a >= min(xa, xb)) //顶点不在圆内但是边和圆相交 ) { returntrue; } else { returnfalse; } } };
5363. 做菜顺序
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classSolution { public: intmaxSatisfaction(vector<int>& a){ int n = a.size(); sort(a.begin(), a.end()); int ans = 0, sum = 0, cur = 0; for(int i=n-1; i>=0; i--) { cur += sum + a[i]; ans = max(ans, cur); sum += a[i]; } return ans; } };