目录
前言
- 前言
- 题目
- CODE
题目链接 : VJ: https://vjudge.net/contest/446835#problem/A CF: https://codeforces.com/problemset/problem/438/D?mobile=true
做这题的时候 感觉挺简单, 最后debug了2小时 真心不容易QAQ (还是太菜了)
难度: 线段树入门基础题
题目(题目就这么简单 不信你自己看)
三个操作:
- 区间求和
- 区间取模
- 单点修改
区间求和,和单点修改都是线段树基本操作
但是这个区间取模 如果全都取模的话 那么会O n^2 TLE
观察一下不难发现
- 如果一个区间内的最大 都比 Mod 小 那么该区间不会变
计算一下时间复杂度 因为取模之后 一定比 x/2 小 最多是Log n次取模
所以程序总 时间复杂度 是 nlogn (1e5)完全可以跑的下来
CODE#include
using namespace std;
const int N = 1e5+10;
using LL = long long ;
int w[N];
struct node
{
int l,r,mx;
LL sum;
} tr[N*4];
void pushup(int u)
{
tr[u].sum = tr[u
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?