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;
}

原文地址:https://www.cnblogs.com/wlzs1432/p/9690247.html

时间: 2024-10-11 17:20:38

CF527D Clique Problem的相关文章

最大团问题(Maximum Clique Problem, MCP)

概述: 最大团问题(Maximum Clique Problem, MCP)是图论中一个经典的组合优化问题,也是一类NP完全问题.最大团问题又称为最大独立集问题(Maximum Independent Set Problem).目前,求解MCP问题的算法主要分为两类:确定性算法和启发式算法.确定性算法有回溯法.分支限界法等,启发式算法.蚁群算法.顺序贪婪算法.DLS-MC算法和智能搜索算法等. 问题描述: 给定无向图G=(V,E),其中V是顶点集:E是V边集.如果U属于V,且对任意两个顶点u,v

分析公式 Codeforces 528B Clique Problem

http://codeforces.com/contest/528/problem/b Clique Problem time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The clique problem is one of the most well-known NP-complete problems. Under some

Codeforces 527D Clique Problem

题意:给你一个xi,wi的点集合 ,问你其中最大的子集满足|xi - xj| >= wi + wj 的大小是多少. 解题思路:dp+离散化+树状数组.把它看成是 一条边[xi-wi,xi+wi] 去覆盖区域就行了 解题代码: 1 // File Name: d.cpp 2 // Author: darkdream 3 // Created Time: 2015年03月18日 星期三 15时28分50秒 4 5 #include<vector> 6 #include<list>

#296 (div.2) D. Clique Problem

1.题目描述:点击打开链接 2.解题思路:比赛时感觉这道题应该会比较难,谁知道看了别人的代码后发现自己真的是被这只纸老虎吓住了==.假设点Xi>Xj,那么绝对值符号可以去掉,即Xi-Xj≥Wi+Wj.移项可以得到Xi-Wi≥Xj+Wj.这样的话,其实就确定了一个有向图的关系,题目转化为找结点数最多的有向图.运用贪心的思想,肯定希望第一个结点的坐标尽量小,以便于容纳更多的结点.因此事先计算出P(X+W,X-W)后放入vector,排序后从第一个点开始尝试,只要满足这样的关系式就努力往后拓展.这样得

Codeforces 528B Clique Problem dp+线段树(or 树状数组)

题目链接:点击打开链接 题意: 给定数轴上的n个点. 下面n行每行两个数 xi, wi 表示点和点权. 对于任意两个点u, v 若dis(u,v) >= u_w+v_w 则这两个点间可以建一条边.(in other words 若两点间距离大于两点的权值和则可以建边) 找一个最大团,输出这个最大团的点数. 其实对于一个权值点我们可以认为是一个区间 如: 4 5 ,可以认为是区间[-1, 9] 则这个点可以从区间(-inf, 1]转移过来,即val(9) = max(val(9), 区间(-inf

[Codeforces Round #296 div2 D] Clique Problem 【线段树+DP】

题目链接:CF - R296 - d2 - D 题目大意 一个特殊的图,一些数轴上的点,每个点有一个坐标 X,有一个权值 W,两点 (i, j) 之间有边当且仅当 |Xi - Xj| >= Wi + Wj. 求这个图的最大团. 图的点数 n <= 10^5. 题目分析 两点之间右边满足 Xj - Xi >= Wi + Wj (Xi < Xj)       ==>     Xj  - Wj >= Xi + Wi (Xi < Xj) 按照坐标 x 从小到大将点排序.用

Codeforces 566 F. Clique in the Divisibility Graph

Codeforces 566F 的传送门 As you must know, the maximum clique problem in an arbitrary graph is NP-hard. Nevertheless, for some graphs of specific kinds it can be solved effectively. Just in case, let us remind you that a clique in a non-directed graph is

CVPR 2015 papers

CVPR2015 Papers震撼来袭! CVPR 2015的文章可以下载了,如果链接无法下载,可以在Google上通过搜索paper名字下载(友情提示:可以使用filetype:pdf命令). Going Deeper With ConvolutionsChristian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke

Codeforces Round #296 (Div. 2) (ABCDE题解)

比赛链接:http://codeforces.com/contest/527 A. Playing with Paper time limit per test:2 seconds memory limit per test:256 megabytes One day Vasya was sitting on a not so interesting Maths lesson and making an origami from a rectangular a mm ?×? b mm sheet