CF580B
题目简化和分析:
选择 \(n\) 个朋友,满足以下条件:
- 工资差异 \(<d\)
- 友谊和最大(题目翻译不太清楚)
现在面临两个问题
- 求差异值
- 求友谊和
所以我们理应想到线段树双指针。
排序后满足工资从小到大,友谊和可以用前缀和实现。
每次往后加一个人。
用 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的更多相关文章
- [CF580B]Kefa and Company(滑动窗口)
题目链接:http://codeforces.com/problemset/problem/580/B 某人有n个朋友,这n个朋友有钱数m和关系s两个属性.问如何选择朋友,使得这些朋友之间s最大差距小 ...
- CF580B Kefa and Company 尺取法
Kefa wants to celebrate his first big salary by going to restaurant. However, he needs company. Kefa ...
- CF 15/09/23
CF580A 给出一个数列,求最长不下降子序列(连续) 直接DP,O(n) CF580B 主人公有n个朋友,每一个朋友有2个属性:m,sat 现在他想邀请部分朋友,邀请的人满足MAX_M-MIN_M& ...
随机推荐
- 微型神经网络库MicroGrad-基于标量自动微分的类pytorch接口的深度学习框架
一.MicroGrad MicroGrad是大牛Andrej Karpathy写的一个非常轻量级别的神经网络库(框架),其基本构成为一个90行python代码的标量反向传播(自动微分)引擎,以及在此基 ...
- React错误: Can't resolve 'react-dom/client'
错误截图 解决方案 当你的react版本低于18时,但仍然报这个错误,可以采用如下方案 意外的发现当我采用上述方案时,我的React路由跳转时,页面不刷新的问题也解决了,很神奇,日后技艺精进再补充.
- pandas 字典创建Dataframe
所有的ndarrays必须具有相同的长度.如果传递了索引(index),则索引的长度应等于数组的长度.如果没有传递索引,则默认情况下,索引为range(n),其中n为数组长度. import pand ...
- 由有序链表构建平衡二叉搜索树-sortedListToBST
描述 给定一个有序列表,将其转换成为一个平衡搜索二叉树 题不难,不过在讨论中发现此题的中序遍历用法略有不同,感觉有点意思 手写一遍加深印象 暴力解法,链表转数组,额外空间O(N),递归遍历搞定.几分钟 ...
- 基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章
今次介绍一个应用程序单例唯一运行方案的代码. 我们知道,有些应用程序在操作系统中需要单例唯一运行,因为程序多开的话会对程序运行效果有影响,最基本的例子就是打印机,只能运行一个实例.这里将笔者单例运行的 ...
- RedHat8静默安装was
前言 was(websphere application server),类似weblogic.tomcat,由IBM开发的一种企业级Java容器. 系统版本:redhat 8.2 was版本:was ...
- Postgresql 批量插入命令COPY使用
在很多场景下,我们经常会遇到将某个Excel或Csv文件中的数据,插入到Postgresql.对于这个需求,我们常规的处理办法就是将文件中的数据,按照文件表头名称转换成集合对象然后插入到数据库,当然这 ...
- Redis从入门到放弃(11):雪崩、击穿、穿透
1.前言 Redis作为一款高性能的缓存数据库,为许多应用提供了快速的数据访问和存储能力.然而,在使用Redis时,我们不可避免地会面对一些常见的问题,如缓存雪崩.缓存穿透和缓存击穿.本文将深入探讨这 ...
- 搭建LNMP 架构
搭建LNMP 架构 环境准备 lnmp 需要 安装 nginx mysql php 软件 #关闭防火墙 systemctl disable --now firewalld #临时禁用SELinux的强 ...
- 纯分享:将MySql的建表DDL转为PostgreSql的DDL
背景 现在信创是搞得如火如荼,在这个浪潮下,数据库也是从之前熟悉的Mysql换到了某国产数据库. 该数据库我倒是想吐槽吐槽,它是基于Postgre 9.x的基础上改的,至于改了啥,我也没去详细了解,当 ...