Description

Luogu4231

Solution

我最近到底怎么了,这种题都做不出来了,一看题第一反应李超线段树(虽然不会),觉得不可做,看一眼题解才发现这个题可以差分,然后差分还打错了好几次,我大概是要退役了吧。

Code

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream> typedef long long ll;
const int N = 1e7 + 10; ll a[N], b[N], c[N];
int n, m; int main() {
scanf("%d%d", &n, &m);
ll x, y, z, w;
for (int i = 1; i <= m; ++i) {
scanf("%lld%lld%lld%lld", &x, &y, &z, &w);
ll d = (w - z) / (y - x);
c[x] += z; c[x+1] += d - z; c[y+1] -= w + d; c[y+2] += w;
}
for (int i = 1; i <= n; ++i) b[i] = b[i-1] + c[i];
ll mx = 0;
for (int j = 1; j <= n; ++j) a[j] = a[j-1] + b[j], a[0] ^= a[j], mx = std::max(a[j], mx); std::cout << a[0] << ' ' << mx << std::endl;
return 0;
}

Note

开了long long的地方就不要再用int了,万一哪里错了就gg了。多层差分的时候要前后多玩几项,防止落下某些差分项。

[Luogu]三步必杀的更多相关文章

  1. luoguP4231_三步必杀_差分

    luoguP4231_三步必杀_差分 题意:N 个柱子排成一排,一开始每个柱子损伤度为0.接下来勇仪会进行M 次攻击,每次攻击可以用4个参数l,r ,s ,e 来描述: 表示这次攻击作用范围为第l个到 ...

  2. Luogu P4231 三步必杀 (差分)

    目录 题目 题解 题目 题目链接 题目背景 (三)旧都 离开狭窄的洞穴,眼前豁然开朗. 天空飘着不寻常的雪花. 一反之前的幽闭,现在面对的,是繁华的街市,可以听见酒碗碰撞的声音. 这是由被人们厌恶的鬼 ...

  3. 【luogu P4231 三步必杀】 题解

    题目链接:https://www.luogu.org/problemnew/show/P4231 诶 我很迷啊..这跟树状数组有什么关系啊...拿二阶差分数组过了..? #include <cs ...

  4. 【Luogu】P4231三步必杀(差分,差分)

    题目链接 郑重宣布我以后真的再也不会信样例了,三种写法都能过 另:谁评的蓝题难度qwq 蓝题有这么恐怖吗 两次差分,第一次差分,前缀和求出增量数组,第二次求出原数组顺便更新答案 看题解之后……第二次差 ...

  5. luogu P4231 三步必杀

    嘟嘟嘟 这道题就是区间加一个等差数列,然后最后求每一个数的值. O(n)做法:二阶差分. 其实就是差分两遍.举个例子 0 0 0 0 0 0 0,变成了 0 2 4 6 8 0 0.第一遍差分:0 2 ...

  6. 洛谷P4231 三步必杀

    题目描述: $N$ 个柱子排成一排,一开始每个柱子损伤度为0. 接下来勇仪会进行$M$ 次攻击,每次攻击可以用4个参数$l$ ,$r$ ,$s$ ,$e$ 来描述: 表示这次攻击作用范围为第$l$ 个 ...

  7. P4231 三步必杀

    题目描述 问题摘要: N个柱子排成一排,一开始每个柱子损伤度为0. 接下来勇仪会进行M次攻击,每次攻击可以用4个参数l,r,s,e来描述: 表示这次攻击作用范围为第l个到第r个之间所有的柱子(包含l, ...

  8. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

  9. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

随机推荐

  1. 如何将BroadcastReceiver中的信息传到Activity中

    方法:在BroadcastReceiver中定义一个接口,在Activity中定义一个BroadcastReceiver的对象,采用动态注册,在Activity中定义接口中的方法并通过Broadcas ...

  2. Dijkstra+SPFA 模板

    Dijkstra 引用自:点击打开链接 #include <algorithm> #include <cstdio> #include <cstring> #inc ...

  3. Cassandra学习&命令行实践

    准备 按照Cassandra集群部署搭建两台测试机,环境信息如下: 名称 IP 数据中心名称 node-01 192.168.198.130 datacenter1 node-02 192.168.1 ...

  4. Git的精简用法

    作为一名开发人员,提交代码那是家常便饭,那如何有效地利用Git进行提交代码呢?在这里介绍一些常用.必要的命令,几乎够工作中使用了. (1)git pull 命令:拉取代码,这条命令没啥说的了,在提交代 ...

  5. JavaScript:JSON对象

    一.JSON对象概念 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScri ...

  6. 回溯经典(指定位置N皇后问题)

    N皇后问题自不必多说,这道题的先行条件是在放置的时候已经指定了一个棋子的位置. 输入第一行为N,第二行为指定棋子的坐标(x,y):输出方案总数以及按字典序升序的各种方案. 思路: 首先是回溯,其次对待 ...

  7. PGET,一个简单、易用的并行获取数据框架

    使用场景 当我们的服务收到一个请求后,需要大量调用下游服务获取业务数据,然后对数据进行转换.计算后,响应给请求方. 如果我们采用串行获取下游数据,势必会增加响应时长,降低接口的qps.如果是并行获取下 ...

  8. 洛谷P1402 酒店之王(网络流)

    ### 洛谷P1402 题目链接 ### 题目大意:有 n 个人, p 间房间,q 种食物.每个人喜欢一些房间,一些食物,但每间房间.每种食物只能分配给一个人.问最大可以让多少个人满足(当且仅当分配到 ...

  9. 初入python

    初入python 一定要学好python 求1-100的和: i=1 s=0 while i<101: s=s+i i=i+1 print(s)

  10. vue踩坑:vue+ element ui 表单验证有值但验证失败。

    一.如图:有值但是验证失败 二. <el-form :model="form" :rules="rules"> <el-form-item l ...