CF527D 题解
题意:数轴上有 \(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 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 调度器44—root_domain—更新路径
1. root_domain 的路径的赋值路径 kernel_init_freeable //内核初始化路径调用 [2] sched_init_smp //core.c 传参 cpu_active_ ...
- 调度平台&定时任务
一.介绍: 1.调度平台能够定时 自动调用我们的脚本或程序,如每周.每天.每隔几小时等: 2.jenkins也可以算一种调度平台 但不是特别好,为了统一化管理.调度还是用专门的任务调度平台比较好 为什 ...
- iOS笔记 - runtime 02:objc_msgSend执行流程
objc_msgSend 执行流程 1 - 第一步:消息发送 2 - 第二步:动态解析 代码示例:resolveInstanceMethod | resolveClassMethod 存在问题:68 ...
- 央行DR007在哪里查看
1.中国外汇交易中心,点击官网进入 https://www.chinamoney.com.cn/chinese/ 2.点击数据选项,接着选择货币市场行情 3.点击质押式回购
- vue调接口导出表格
props:{ form:{ type:Object, default:()=>{} }, indexNum:{ ...
- 解决ubuntu18环境matplotlib无法正常显示中文
首先看看系统装了中文字体没?命令: fc-list :lang=zh 如果没安装,需要去下载或者从win复制一份到ubuntu, 在/usr/share/fonts文件夹下创建一个chinese文件夹 ...
- 大规模并行处理器编程实战_原书第2版_pdf
链接:https://pan.baidu.com/s/1c8ez8dCTz5bUQchwhXAF7w 提取码:tc1f
- COM三大接口:IUnknown、IClassFactory、IDispatch。
(1)COM组件有三个最基本的接口类,分别是IUnknown.IClassFactory.IDispatch. COM规范规定任何组件.任何接口都必须从IUnknown继承,IUnknown包含三个函 ...
- zabbix源码目录结构
用的是今年最新的zabbix-3.0.1 bin: 包含windows下zabbix_agentd.zabbix_get.zabbix_sender的二进制程序文件和sender的二次开发需要的头文件 ...
- sql server 常用高级查询sql
数据源:表:coursename kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90赵六 语文 88赵六 数 ...