首页 > 其他分享 >Alice and Hairdresser题解

Alice and Hairdresser题解

时间:2023-09-18 19:15:19浏览次数:29  
标签:Hairdresser int 题解 Alice 答案 左侧 右侧

Alice and Hairdresser

第一眼线段树,第二眼好像可以直接用数组模拟。

当一根头发长于 \(l\),它再长多长其实都一样,所以不用开 long long

如果一根新的头发长到比 \(l\) 长,那可以分成以下几种情况:

  • 如果它左侧和右侧只有一个元素大于 \(l\) ,那答案不变。

  • 如果左侧和右侧都大于 \(l\),答案减一。因为相当于将左侧区间和右侧区间并到一起。

  • 如果右侧和左侧都不大于 \(l\),答案加一。

在刚开始时统计一遍答案,每次做修改就行了。

复杂度 \(O(n)\)。

  #include <bits/stdc++.h>
  
  using namespace std;
  
  int n, m, l;
  vector<int> a;
  int ans;
  
  int main() {
  	cin >> n >> m >> l;
  	a.resize(n + 7);
  	for (int i = 1; i <= n; i++)
  		cin >> a[i];
  	for (int i = 1; i <= n; i++)
  		if (a[i] > l && a[i - 1] <= l)
  			ans++;
  	while (m--) {
  		int op;
  		cin >> op;
  		if (op == 1) {
  			int x, y;
  			cin >> x >> y;
  			if (a[x] > l) continue;
  			a[x] += y;
  			if (a[x] <= l) continue;
  			if (a[x - 1] > l && a[x + 1] > l) ans--;
  			if (a[x - 1] <= l && a[x + 1] <= l) ans++;
  		}
  		if (op == 0)
  			cout << ans << endl;
  	}
  }

标签:Hairdresser,int,题解,Alice,答案,左侧,右侧
From: https://www.cnblogs.com/ccxswl/p/17712809.html

相关文章

  • c# winform打开外部程序异常问题解决方案
    c#winform中打开外部程序的常规操作是使用Process类,此时,如果外部程序没有对路径的操作或其他路径文件的操作时,通常不会出现报错或异常;反之,会出现找不到路径或者直接抛出异常。此种情况主要是因为外部程序和当前程序不在一个路径下导致的,以下是解决方案:System.IO.Directory.Set......
  • yarn 出现 【 info There appears to be trouble with your network connection. Retr
    第一种解决方案#调整为taobao镜像源yarnconfigsetregistryhttps://registry.npm.taobao.org我用了没用,可以试试第二种解决方案要在项目根目录下创建后缀名为.yarnrc的文件,并设置network-timeout的值为600000,你可以按照以下步骤进行操作:打开文本编辑器,例如Note......
  • 【POJ 2488】A Knight‘s Journey 题解(深度优先搜索)
    背景骑士厌倦了一次又一次地看到同样的黑白方块,决定去旅行全世界每当骑士移动时,它是一个方向上的两个正方形和一个垂直于这个方向的正方形。骑士的世界就是他生活的棋盘。我们的骑士生活在一个棋盘上,这个棋盘的面积比普通的8*8棋盘小,但它仍然是矩形的。你能帮助这位冒险的骑士制......
  • [题解]Pa?sWorD(2023ICPC网络预选赛第一场I题)
    IPa?sWorD下次不要认为2e8可以莽过去了思路计数DP+状压(其实也可以不压)+前缀和优化(倒着写是差分)dp[i][j][k]表示第i位填j,状态为k的方案数k这一维用于状态压缩,表示数字、大写、小写是否出现前缀和优化:在处理?的时候,暴力会有62X62X8的单次复杂度,但不难发现,关于......
  • Death DBMS题解(AC自动机)
    题目传送门CF1437G好题观察这道题,发现有关字串的题目,一般来说,这种题都要构建\(AC\)自动机,所以考虑构建。构建之后,原来的所有\(fail\)是一个树形结构。解法\(1\):考虑从询问入手,那么对于每一个询问,等价于就是查询每一个\(Q_i\)包含的后缀的最大值,再对这些最大值取\(max......
  • 题解 LOJ2549【[JSOI2018] 战争】
    problem给你两个平面凸多边形\(A,B\),\(Q\)次询问,每次询问是一个向量\(\vecv\),回答\(A\)与\(B+\vecv\)是否有交。\(n,Q\leq10^5\)。solution观察闵可夫斯基和(Minkowskysum)的定义,若将这个运算定义为\((*)::[Point]\to[Point]\to[Point]\),则满足:\[A*B=\{......
  • 【UVA 572】Oil Deposits 题解(深度优先搜索)
    GeoSurvComp地质调查公司负责探测地下石油矿床。GeoSurvComp一次处理一个大的矩形土地区域,并创建一个划分将土地分割成许多方形地块。然后使用传感设备分别分析每个地块确定图中是否含有油。含有石油的地块称为口袋。如果两个口袋相邻,则它们是相同的油沉积。油沉积物可能非常......
  • CF70D Professor's task 题解 & 动态凸包板子
    CF70DProfessor'stask题解前言此篇题解用的是\(Andrew\),不想看这种做法的可以绕道。题意动态凸包板子题。维护动态凸包。两种操作,加一个点或查询一个点是否在凸包内。题解首先你得会静态二维凸包。维护二维凸包的方法挺多的,比如什么\(Andrew\)算法,\(Jarvis\)算法还......
  • 简单分治快排问题解析(c++实现)
    这几天刷了需要使用分治快排思想去解决的几道比较好的题目,所以写下这篇博客用于复习和以后的复盘。什么是分治快排思想首先我们要知道什么是分治快排思想,这个思想其实就是在模拟实现qsort算法的时候使用的一个方法,在模拟实现qsort的时候,我们知道第一步是需要使用一个随意选择(三数取......
  • [ABC320E] Somen Nagashi题解
    2023-09-16题目题目传送门翻译翻译难度&重要性(1~10):4题目来源AtCoder题目算法优先队列解题思路水题一道。需要两个优先队列:因为每一次是队首的人拿到面条,即队列中编号最小的拿面条,就用一个优先队列用来维护当前队列中的编号最小的人。由于每一次拿了面条后再......