传送门

题意:

一段序列,每一个数字的大小代表坐标位置,这些坐标位置上都有垃圾,要求将这一段序列的数字最终通过x + 1, x - 1操作移动到小于等于2个位置,垃圾移动到同一个坐标位置就可以和那个坐标位置一起移动,问最小的移动数量。

思路:

通过观察,两个以内包括两个,直接0, 其他,最后移动到只剩两个最优,那肯定是有两个要选择的,通过观察发现我不管选哪两个,最后都是整体长度的减去其中每一个相邻的位置差,头和尾的差就是整体长度,要使最小,中间相邻差最大即可。

这里注意编辑代码,可能会有一种编辑方法是不断声明迭代器,通过++ --操作,但是这样会超时,效率太低了,有两个next(it), prev(it) 这两个是针对迭代器的++ --的最快效率了

#include <bits/stdc++.h>
#define endl '\n'
#define IOS ios::sync_with_stdio(false);
using namespace std;typedef long long ll;int n, q, op, x;
set<int> se;
multiset<int> mus;
ll sum = 0;void add(int x)
{se.insert(x);auto it = se.find(x);if (next(it) != se.end()){sum += *next(it) - *it;    //这里用next效率快很多mus.insert(*next(it) - *it);}if (it != se.begin()){sum += *it - *prev(it);mus.insert(*it - *prev(it));}if (next(it) != se.end() && it != se.begin()){sum -= *next(it) - *prev(it);mus.erase(mus.find(*next(it) - *prev(it)));}
}void erase(int x)
{auto it = se.find(x);if (next(it) != se.end()){sum -= *next(it) - *it;mus.erase(mus.find(*next(it) - *it));}if (it != se.begin()){sum -= *it - *prev(it);mus.erase(mus.find(*it - *prev(it)));}if (next(it) != se.end() && it != se.begin()){sum += *next(it) - *prev(it);mus.insert(*next(it) - *prev(it));}se.erase(x);
}int getAns()
{if (se.size() <= 2)return 0;return sum - *(--mus.end());
}#include <bits/stdc++.h>
#define endl '\n'
#define IOS ios::sync_with_stdio(false);
using namespace std;typedef long long ll;int main()
{/*IOS; cin.tie(0), cout.tie(0);*/cin >> n >> q;for (int i = 1; i <= n; ++i){int temp;cin >> temp;add(temp);}cout << getAns() << endl;while (q--){cin >> op >> x;if (op == 1){add(x);cout << getAns() << endl;}else{erase(x);cout << getAns() << endl;}}return 0;
}

Trash Problem相关推荐

  1. Educational Codeforces Round 95 (Rated for Div. 2)D. Trash Problem(权值线段树+离散化)

    题目描述 Vova decided to clean his room. The room can be represented as the coordinate axis OX. There ar ...

  2. Educational Codeforces Round 95 (Rated for Div. 2)

    昨天本来想打一下,但是今天早上课很早,就没有打,只是看了看前三个题写了个代码,今天中午课结束交了一下都AC了.y1s1 A题第一次写就出来了,但是答案一直不对,最后结果是样例错了-.- A - Buy ...

  3. Educational Codeforces Round 95题解

    Educational Codeforces Round 95题解 题目链接 代码链接 A. Buying Torches 题目大意: 你手上现在有一个木棍.有以下两种交换方式: 1.用一个木棍交换x ...

  4. 2020 ICM Weekend 1 Problem E: Drowning in Plastic

    中文: 2020 ICM 周末 1 问题 E:淹死在塑料中 自 1950 年代以来,由于其用途广泛,例如食品包装,消费品,医疗设备和建筑业,塑料 制造业呈指数增长.尽管有很大的好处,但与增加塑料生产相 ...

  5. E.04.01 ‘A Very Big Problem.’ Giant Ship in the Suez Remains Stuck.

    2021.04.01 文章目录 [课程导读] [英文原文] [外刊原文] [课程导读] 近日,一艘长达400米的"长赐号"巨型货轮,在埃及苏伊士运河搁浅.苏伊士运河停运的每个小时里 ...

  6. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  7. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  8. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  9. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

最新文章

  1. centos7 安装Git
  2. 【全网唯一】全网唯一能够跑通的,跑不通你来找我~用node.js完成微信支付下单功能,且只需要一个文件wxpay.js就解决业务流程的node.js程序
  3. Nature Commun. | 假单胞和芽孢杆菌互作共存于寄主的机制,为生物防治提供新思路...
  4. ​赠书:面向对象的两大迷思,再给你们解答一次
  5. 深入浅出python机器学习_7.1_支持向量机
  6. 2014.03.20入职第四天
  7. IP协议详解---Linux学习笔记
  8. uni app map 地图 漂浮问题及方案
  9. Ubuntu 安装R/Rstudio
  10. 最新发布|深度学习必学“圣经”花书出视频课了!附带论文代码精读讲解!
  11. 反爬虫策略之----UserAgent设置与随机生成
  12. 人脸识别Python教学
  13. java 文件递归删除文件夹_JAVA利用递归删除文件和文件夹
  14. java实现图片查看器
  15. PHP和Vue的区别,vue和js区别是什么
  16. python求表面积代码_用于计算python中的体积或表面积的良好算法
  17. github中的LICENSE是什么
  18. Android微信支付,支付成功后并返回指定页面
  19. 可以和公司恋爱,但别想结婚
  20. 技术分享|GBase 8a在某客户的部署方案

热门文章

  1. 微博舆情 之 热点话题分析
  2. Android百度地图测距功能
  3. 西门菲莎大学计算机专业怎么样,西门菲莎大学
  4. 头条百科怎么创建才容易通过,上头条百科的技巧
  5. IIC协议编程要点,24C04为例
  6. 开课吧项目的总结以及读《图解HTTP》的总结
  7. [CORS:跨域资源共享] 同源策略与JSONP
  8. BYOD与企业移动性的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 《特征工程入门与实践》--- 特征学习
  10. 整理了一系列的JavaScript树操作方法,不用再一遍又一遍的百度了