CF527D】的更多相关文章

题面 这题还挺水的,把那个式子稍微变形一下就可以的到xi-wi>=xj+wj,易知:若把每个点看做一条线段,左端点是xi-wi,右端点是xi+wi,就只要求最多的不重叠的线段数就可以了,然后就是乱搞了 #include <cstdio> #include <algorithm> using namespace std; ; int n; struct point{int x,w;}a[N]; inline bool cmp(point a,point b){return a.…
数轴上有n 个点,第i 个点的坐标为xi,权值为wi.两个点i,j之间存在一条边当且仅当 abs(xi-xj)>=wi+wj. 你需要求出这张图的最大团的点数. Solution 把每个点看作以 \((x_i,0)\) 为圆心,半径为 \(r_i\) 的圆 那么如果不相交就有边相连 干脆看作线段吧,所以就是求最大不相交线段数 这就是一个很基础的贪心,以右端点为第一关键字,左端点为第二关键字 sort 然后"能取就取"即可 #include <bits/stdc++.h>…