题目简化和分析:

选择 \(n\) 个朋友,满足以下条件:

  • 工资差异 \(<d\)
  • 友谊和最大(题目翻译不太清楚)

现在面临两个问题

  1. 求差异值
  2. 求友谊和

所以我们理应想到线段树双指针。

排序后满足工资从小到大,友谊和可以用前缀和实现。

每次往后加一个人。

用 while 循环,增加左端点,使得工资差异满足。

并且每次取最大值最后输出。

两个指针,如果一直满足就增加右端点,否则增加左端点,可以保证差异值并且长度最大,然后每次在此区间打擂台即可。

Solution:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db; const int N=1e5+50;
const int M=1e5+50;
const int Mod=1e9+7; inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
} ll n,d;
struct node{
ll m,s;
}a[N];
ll ans;
ll s[N];
bool cmp(node a,node b){
return a.m<b.m;
} int main()
{
n=read(),d=read();
for(int i=1;i<=n;++i){
a[i].m=read(),a[i].s=read();
}
sort(a+1,a+n+1,cmp);
ll l=1;
for(int i=1;i<=n;++i){
s[i]=s[i-1]+a[i].s;
while(a[i].m-a[l].m>=d) ++l;
ans=max(ans,s[i]-s[l-1]);
}
printf("%lld\n",ans);
return 0;
}

CF580B的更多相关文章

  1. [CF580B]Kefa and Company(滑动窗口)

    题目链接:http://codeforces.com/problemset/problem/580/B 某人有n个朋友,这n个朋友有钱数m和关系s两个属性.问如何选择朋友,使得这些朋友之间s最大差距小 ...

  2. CF580B Kefa and Company 尺取法

    Kefa wants to celebrate his first big salary by going to restaurant. However, he needs company. Kefa ...

  3. CF 15/09/23

    CF580A 给出一个数列,求最长不下降子序列(连续) 直接DP,O(n) CF580B 主人公有n个朋友,每一个朋友有2个属性:m,sat 现在他想邀请部分朋友,邀请的人满足MAX_M-MIN_M& ...

随机推荐

  1. CentOS 7 下/etc/ssh/sshd_config 文件解释

    CentOS 7 下/etc/ssh/sshd_config 文件详解 SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT.putty.Xshell等,而在服务器端运行的是一 ...

  2. Idea报错:无法创建java虚拟机

    报错如下: 我怀疑是在配置algo4环境时,将系统变量改变了 于是我又重新配置了一下环境变量 然后运行 cmd 执行 java -version 还是报错 <JAVA_HOME>/lib/ ...

  3. 【Python】Locust持续优化:InfluxDB与Grafana实现数据持久化与可视化分析

    前言 在进行性能测试时,我们需要对测试结果进行监控和分析,以便于及时发现问题并进行优化. Locust在内存中维护了一个时间序列数据结构,用于存储每个事件的统计信息. 这个数据结构允许我们在Chart ...

  4. MyBatis(log4j)

    log4j介绍 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护 ...

  5. 图解 Vue 响应式原理

    Vue 初始化 模板渲染 组件渲染 为了便于理解,本文将从以下两个方面进行探索: 从 Vue 初始化,到首次渲染生成 DOM 的流程. 从 Vue 数据修改,到页面更新 DOM 的流程. Vue 初始 ...

  6. debian 防火墙命令 nft

    参考链接:nftables # which nft /usr/sbin/nft # dpkg -S /usr/sbin/nft nftables: /usr/sbin/nft # dpkg -L nf ...

  7. 2021-8-2 Mysql个人练习题

    创建学生表 CREATE TABLE student( id int, uname VARCHAR(20), chinese FLOAT, english FLOAT, math FLOAT ); I ...

  8. python入门,一篇就够了

    python规范 函数必须写注释:文档注释格式'''注释内容''' 参数中的等号两边不要用空格 相邻函数用两个空行隔开 小写 + 下划线 函数名 模块名 实例名 驼峰法 类名 tips # 一行代码太 ...

  9. Linux学习环境搭建(VMware虚拟机安装Linux)

    企业现状 目前绝大多数企业运维人员的工作环境都是Windows下通过SSH工具(如XShell等)远程连接千百里外的服务器进行管理和维护的. 而且学Linux运维,99.9%知识与硬件无关,用虚拟机足 ...

  10. 【译】基于XAML的跨平台框架对比分析

    多年来,基于XAML的UI框架已经有了很大的发展.下面的图表是最好的说明.这些框架主要包含:支持跨平台应用的Avalonia UI, Uno Platform和 .NET MAUI.事实上,除了Ava ...