classSolution { public: intnumIdenticalPairs(vector<int>& nums){ int ans = 0; int n = nums.size(); for (int i = 0; i < n; ++i) for (int j = i + 1; j < n; ++j) ans += nums[i] == nums[j]; return ans; } };
classSolution { public: doublemaxProbability(int n, vector<vector<int>>& edges, vector<double>& succProb, int start, int end){ vector<double> prob(n); prob[start] = 1; vector<vector<pair<int, double>>> adj(n); for (int i = 0; i < edges.size(); ++i) { int u = edges[i][0], v = edges[i][1]; double p = succProb[i]; adj[u].emplace_back(v, p); adj[v].emplace_back(u, p); } priority_queue<pair<double, int>> pq; vector<bool> vis(n); pq.push({1, start}); while (!pq.empty()) { auto top = pq.top(); double p = top.first; int u = top.second; pq.pop(); if (vis[u]) continue; vis[u] = true; if (p < eps) continue; for (auto edge : adj[u]) { int v = edge.first; double now = p * edge.second; if (prob[v] < now) { prob[v] = now; pq.push({prob[v], v}); } } } return prob[end]; } };
doublecalc(double ax, double ay, double bx, double by){ double dx = bx - ax, dy = by - ay; returnsqrt(dx * dx + dy * dy); }
classSolution { public: doublegetMinDistSum(vector<vector<int>>& positions){ int n = positions.size(); double x = 0, y = 0; for (auto v : positions) { x += v[0]; y += v[1]; } x /= n, y /= n; auto dist = [&](double cx, double cy) { double ans = 0; for (auto v : positions) ans += calc(cx, cy, v[0], v[1]); return ans; }; double d = dist(x, y); double step = 100.0; int done = 0; while (step > eps) { done = 0; for (int i = 0; i < 4; ++i) { double nx = (double)x + step * dx[i]; double ny = (double)y + step * dy[i]; double t = dist(nx, ny); if (t < d) { d = t; x = nx; y = ny; done = 1; break; } } if (!done) step /= 2; } return d; } };