CF527D Clique Problem
Posted wlzs1432
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF527D Clique Problem相关的知识,希望对你有一定的参考价值。
CF527D Clique Problem
题意简述
数轴上有n 个点,第i 个点的坐标为xi,权值为wi。两个点i,j之间存在一条边当且仅当 abs(xi-xj)>=wi+wj。 你需要求出这张图的最大团的点数。(团就是两两之间有边的顶点集合)
solution
简单贪心
化简原式:就是找xi-wi>=xj-wj
那对于一个点i,设li=xi-wi,ri=xi+wi
把每一个点看作[li,ri]间的一条线段,只要表示两点的
线段不重叠,就有一条边,然后就是一道贪心了
CF里面的神奇思维题,难度没有那么大,提高难度比较适宜(恶意评分?)
#include<bits/stdc++.h> using namespace std; int n; struct node { int l; int r; friend bool operator < (node a1,node a2) { if(a1.r!=a2.r) return a1.r<a2.r; else return a1.l<a2.l; } } t[200000 + 10]; int ans=0; int main() { cin>>n; for(int i=1;i<=n;i++) { int a,b; cin>>a>>b; t[i].l=a-b; t[i].r=a+b; } sort(t+1,t+n+1); int r= -(1<<30); for(int i=1;i<=n;i++) { if(t[i].l>=r) { ans++; r=t[i].r; } } cout<<ans<<endl; }
以上是关于CF527D Clique Problem的主要内容,如果未能解决你的问题,请参考以下文章
The Largest Clique UVA - 11324
UVA11324 The Largest Clique —— 强连通分量 + 缩点 + DP
[CF1528C]Trees of Tranquillity
1142 Maximal Clique (25 分)难度: 一般 / 知识点: 模拟