[VP]河南第十三届ICPC大学生程序竞赛 J.甜甜圈

news2024/11/24 3:21:36

前言

传送门 : https://ac.nowcoder.com/acm/contest/17148/J

题意 :
给定两个甜甜圈堆 , 每次只能吃所有中最甜的那一个 , 否则的话就移动

询问最小的移动步骤

思路 :
很明确的一个目标 , 寻找当前最大值并且求出距离

那么我们考虑将两个甜甜圈堆进行合并 , 使得变成一个堆的操作

在这里插入图片描述

不难发现, 我们如果对甜度进行排序 ,那么最大值很容易就可以找到 , 而且对于距离的操作,我们只需要多记录一个下标即可 。 但是被吃掉的甜甜圈会消失 , 也就是我们计算完操作之后需要给他删除

所以我们就可以发现 , 如果我们利用树状数组前缀和的操作 , 那么两边的距离就是 g e t s u m ( i ) − g e t s u m ( i − 1 ) getsum(i) -getsum(i-1) getsum(i)getsum(i1)

而对于每次的删除就是 u p d a t a ( i , − 1 ) updata(i,-1) updata(i,1)

code :

const int N = 2e5+10,INF = 0x3f3f3f3f;
const double eps = 1e-5;


struct node{
    int to,val;
};



ll c[N];
int n,m;
int lowbit(int x){return x&(-x);}

void updata(int i,int k)     
{
    while(i <= n + m) 
    {
        c[i] += k;
        i += lowbit(i); 
    }
}
ll getsum(int i){        
    ll res = 0;
    while(i > 0){
        res += c[i];
        i -= lowbit(i); 
    }
    return res;
}

pii a[N];
bool cmp(pii a,pii b){
	return a.x > b.x ;
}
void solve(){
	
	cin>>n>>m;
	
	
	for(int i = n ; i >= 1 ;i --  ){
		updata(i,1);
		cin>>a[i].x ;
		a[i].y = i ;
	}
	
	for(int i = n+1 ; i <= n + m ;i ++ ){
		updata(i,1);
		cin>>a[i].x;
		a[i].y = i ;
	}
	
	ll ans = 0 ;
	
	a[0].y = n;
	
	sort(a+1,a+1+n+m,cmp);
	
	for(int i = 1; i <= n  + m ;i ++ ){
		updata(a[i].y , -1);
		ans += abs(getsum(a[i].y) - getsum(a[i-1].y));
	}
	
	cout<<ans<<endl;
	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode:17. 电话号码的字母组合

17. 电话号码的字母组合1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同…

【C++入门】C向C++过渡(上)

前言在正式进入C之前&#xff0c;我们首先要对C有一个基本的认知。这里我就不过多的进行描述了&#xff0c;有兴趣的可以去网络搜索一番。总而言之&#xff0c;从名称上面我们也可以看得出来&#xff0c;C是在C的基础上进行不断地优化发展。事实上确实是这样&#xff0c;C语言中…

k8s部署gitlab

Gitlab以容器方式运行&#xff0c;需要持久化如下几个目录中的数据: 持久化本地位置 容器位置 使用 ${sc}/data /var/opt/gitlab 用于存储应用程序数据。 ${sc}/logs /var/log/gitlab 用于存储日志。 ${sc}/config /etc/gitlab 用于存储 GitLab 配置 文件。 1、下载…

C语言柔性数组的‘美‘

目录 柔性数组的使用和概念 柔性数组的特点 柔性数组与指针的区别 柔性数组的好处 柔性数组的使用和概念 arr[]编译 C99 中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做『柔性数组』成员。 柔性数组的特点 1、柔性数组成员前必须至少有一个其他…

黑龙江创维E900V22C_S905L3(B)_安卓9.0_开启设置隐藏无线_完美线刷固件包

黑龙江创维E900V22C_S905L3(B)_安卓9.0_开启隐藏设置无线WIFI_完美线刷固件包 提示&#xff1a;大部分芯片均为S905L3A&#xff0f;AB&#xff0c;这两个是可以通刷的。 1、此分享固件包芯片特殊&#xff0c;芯片为S905L3&#xff0c;还有S905L3B芯片&#xff0c;理论上通刷…

C++设计模式:建造者模式(详解+案例代码)

文章目录建造者模式实现步骤实现代码案例一&#xff1a; 组装电脑案例二&#xff1a;汉堡店点餐优缺点建造者模式 建造者模式是一种对象创建型模式之一&#xff0c;用来隐藏复合对象的创建过程&#xff0c;它把复合对象的创建过程加以抽象&#xff0c;通过子类继承和重载的方式…

【JavaEE】设计模式之单例模式

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:设计模式之单例模式。 &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE初阶代码存放&#xff01; ⛵⛵作者简介&am…

Redis 连接池报错:jwtCalibrateHandler 48 max number of clients reached

问题[ERROR 2023-01-06 15:37:58,877] jwtCalibrateHandler 48 max number of clients reached早上突然看到反馈说redis连接异常&#xff0c;就是这个&#xff1a;max number of clients reached。问题很显然就是redis连接数超了.原因分析redis maxclients 是redis server的重要…

VMware vCenter Server Appliance空间不足问题处理

原创作者&#xff1a;运维工程师 谢晋 前提提要 客户环境为VSAN环境&#xff0c;VCSA版本为6.7&#xff0c;偶然间发现VSAN监控的性能不能正常打开&#xff0c;如下图&#xff1a;     后登陆https://VCSAIP:5480发现出现告警&#xff0c;报错log日志满了 故障处理 开…

rabbitmq+netcore6 【3】Publish/Subscribe:发布/订阅

文章目录1&#xff09;前言2&#xff09;临时队列3&#xff09;绑定4&#xff09;综合以上代码准备工作1、生产者2、消费者13、消费者25&#xff09;验证官网教程原文链接&#xff1a; https://www.rabbitmq.com/tutorials/tutorial-three-dotnet.html翻译版参考链接&#xff1…

大话测试数据(二):概念测试数据的获取

在大话测试数据&#xff08;一&#xff09;文章中&#xff0c;我提到&#xff0c;获取数据的第一步是获取概念上数据。这一步看起来简单&#xff0c;其实不是那么容易。获取概念数据和获取需求的过程是交织在一起的&#xff0c;事实上&#xff0c;它们其实是一个事儿&#xff0…

Ribbon、Feign、Hystrix超时重试熔断问题

文章目录问题描述重试次数不生效开启熔断后重试次数生效fallbackFactory回退降级异常为空问题1分析问题2、3分析总结feign请求次数计算Hystrix超时时间设置公式问题描述 在使用Ribbon、Feign、Hystrix组合时&#xff0c;因为配置的问题出现以下现象&#xff0c;让我的大脑CPU烧…

[SWPU2019]Web1

目录 [SWPU2019]Web1 无列名查看表数据 不使用列名查询表中数据 [SWPU2019]Web1 首先我们先注册&#xff0c;登录进来后看到如下界面&#xff1a; 我们点击申请发布广告&#xff0c;并发送&#xff1a; 查看广告详情&#xff0c;发现疑似存在注入点&#xff1a; 于是我们在发…

Docker 应用篇 | Docker 学习笔记总结

Docker 视频内容可以参考黑马程序员的Docker篇 详细完整内容可以查询菜鸟教程&#xff1a;Docker 教程 本篇博文主要让读者对Docker有一个基本理解并可以借助Docker发布自己的项目 一、初识Docker 1.1 Docker概述 Docker是一个集装箱式的思想 Docker可以让开发者打包他们的…

招聘求职系统|基于Springboot+Vue+Nodejs实现求职招聘系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

电脑系统更新后桌面的文件全部不见了怎么恢复?

电脑系统更新是很常见的一种情况&#xff0c;自动更新电脑系统后我们可以进行更优质的使用体验&#xff0c;但是最近有位小伙伴&#xff0c;出现了win10电脑系统更新后桌面文件丢失情况&#xff0c;那么电脑系统更新桌面文件没了怎么办&#xff1f;电脑系统更新桌面文件不见了怎…

实验二十三 基于时间的ACL配置及策略

实验二十三 基于时间的ACL配置及策略实验要求&#xff1a; 某公司通过router实现各部门之间的互连。公司要求禁止销售部门在上班时间(8:00 至18:00)访问工资查询服务器(IP地址为192.168.10.10)&#xff0c;财务部门不受限制&#xff0c;可以 随时访问。网络拓扑图&#xff1a;实…

如何定义算法?10分钟带你弄懂算法的基本概念

算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据&#xff0c;经过计算机程序的有限次运算&#xff0c;能够得出所要求或期望的终止状态或输出数据。 编程界的“Pascal之父”Nicklaus Wirth有一句人尽皆知的名言&#xff1a;“算法数据结构程序”…

【目标检测】G-GhostNet

1、论文 论文题目&#xff1a;《GhostNets on Heterogeneous Devices via Cheap Operations》 论文地址&#xff1a; https://arxiv.org/pdf/2201.03297.pdf 代码地址&#xff1a; https://github.com/huawei-noah/CV-Backbones 2、引言 本文针对网络部署时面临的内存和资源…

python提取excel文本框内容

就提取excel文本框的内容&#xff0c;提供两种方法 一、 转成pdf&#xff0c;识别pdf文字 该方法需要注意两点&#xff1a; 1.似乎只能识别选中的文字&#xff08;图片不行&#xff09; 2.会受到精度影响&#xff08;即有可能识别出错字&#xff09; 以下是代码 先转存为pdf格…