题意:数轴上有 \(n\) 个点,第 \(i\) 个点的坐标为 \(x_i\),权值为 \(w_i\)。两个点 \(i,j\) 之间存在一条边当且仅当 \(abs(x_i-x_j)\geq w_i+w_j\)​ 。 你需要求出这张图的最大团的点数。

团的定义:两两之间有边的顶点集合。

solution:

可以先从式子入手。\(i,j\) 两点之间有边的条件是 \(\left|x_i-x_j\right|\ge w_i+w_j\),然后考虑怎么把绝对值去掉,不妨设 \(x_i \ge x_j\),然后式子就化简为了 \(x_i-x_j \ge w_i+w_j\),遇到这种式子可以套路地把带有 \(i\) 的项移到一边,带有 \(j\) 的项移到另一边,所以式子就变成了:

\(x_i-w_i \ge x_j+w_j\) 在数轴上表示如图:

容易发现如果把一个点看成一条左端点为 \(x_k-w_k\),右端点为 \(x_k+w_k\) 的线段,那么两个点之间有边当且仅当两条线段不重合,再根据团的定义:每两个点之间都有边。就转化为了任意两条线段都不重合,所以问题就变成了从 \(n\) 条线段里选择尽可能多的线段,使得任意两条线段都不重合,也就是线段覆盖问题。这里有一道线段覆盖的模板题,可以先完成。

代码(可读性应该还可以吧):

点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int n,ans;
struct node{
int l,r;
bool operator < (const node &w) const{return r < w.r;}
}a[maxn];
int main(){
scanf("%d",&n);
int x,y;
for(int i = 1;i <= n;i++){
scanf("%d%d",&x,&y);
a[i] = node{x - y,x + y};
}
sort(a + 1,a + n + 1);
int nr = -2e9;
for(int i = 1;i <= n;i++)
if(a[i].l >= nr) nr = a[i].r,ans++;
printf("%d",ans);
return 0;
}

CF527D 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. 5.mysql的explain的分析

    执行分析:  1.id 含义:表示查询的子句或者操作表的顺序 三种情况:id 相同,执行的顺序由上到下: id不同,id越大优先级越高,越先执行: id相同不相同同时存在: 2.select_type ...

  2. 关于SQLsever2012报错的一些经验总结

    问题描述:数据库连接实例时出现报错情况: 问题截图: 故障软件:SQL sever2012 操作系统:windows sever 2022R2数据中心 期望结果:可以打开之前的实例 总结经验: 上面这 ...

  3. 230219 Business 31-48

    31.  31: Maternity LeaveVeronica, when is your baby due?Next month.Are you going on maternity leave? ...

  4. 阿里云ECS部署单机kafka 并对外提供服务(带认证)

    1. zk配置(单机) zoo.cfg tickTime=2000initLimit=10syncLimit=5dataLogDir=/data/zookeeper/log/dataDir=/data ...

  5. 常见的hash数据结构

    遍历 hash表是一种比较简单和直观的数据结构,在查找时也有很好的性能.但是hash表不能提供有序遍历,这个是其特性决定,所以不足为奇.但是,更为实际的一个问题是如果遍历整个hash表中的所有元素? ...

  6. Vue v-once指令 和 v-pre指令

    v-once指令: 1.v-once 所在节点在初始化动态渲染后,就视为静态内容了 2.以后数据的改变不会引起v-once所在结构的更新,可用于优化性能 v-pre指令: 1.跳过其所在节点的编译过程 ...

  7. Github的.gitignore忽略文件

    Git中有一个非常重要的一个文件-----.gitignore 1.当然如果已经push了怎么办?当然也有解决方法,如下: 有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述 ...

  8. /etc/login.defs 创建用户的默认设置文件

    /etc/login.defs 文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等.需要注意的是,该文件的用户默认配置 ...

  9. 2019-2020-1 20199318《Linux内核原理与分析》第九周作业

    第8章 进程的切换和系统的一般执行过程 一.学习总结 Linux系统的一般执行过程: 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程. (1)正在运行的用户态进程X; (2)发生中断 ...

  10. Spring Security 自定义认证逻辑

    Spring Security 自定义认证逻辑 这篇文章的内容基于对Spring Security 认证流程的理解,如果你不了解,可以读一下这篇文章:Spring Security 认证流程 . 分析 ...