[Luogu]三步必杀
2024-09-06 00:38:28
Description
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了。多层差分的时候要前后多玩几项,防止落下某些差分项。
最新文章
- 纯javaScript、jQuery实现个性化图片轮播
- 解决MySQL数据库不允许从远程访问的方法
- Linux 日常命令
- MFC编程入门之十六(对话框:消息对话框)
- ACM第四站————最小生成树(克鲁斯卡尔算法)
- OSGi之Bundle
- UNIX标准化及实现之POSIX标准必需头文件
- mongo in和not in查询
- 关于 Abp 替换了 DryIoc 框架之后的问题
- siteServer创建网站中Mysql和SqlServer的区别
- 随笔 | 分布式版本控制系统Git的安装与使用
- SQL语句(二)创建带主键和约束的数据表
- C#文件下载(实现断点续传)
- android开发(29) 自定义曲线,可拖动,无限加载
- Promise 必知必会的面试题
- 2018.07.03 BZOJ 1007: [HNOI2008]水平可见直线(简单计算几何)
- EF学习笔记-CODE FIRST-约定
- 防范XSS跨站2
- PHP 执行系统外部命令的函数- system() exec() passthru()
- mongoTemplate操作内嵌文档