博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4915 帕秋莉的魔导书
阅读量:6478 次
发布时间:2019-06-23

本文共 1279 字,大约阅读时间需要 4 分钟。

题意分析

当前等级为\(x\)的魔法书会对等级在\([x,inf]\)的所有人造成\(y\)的影响

所以除了求平均值之外 就是区间修改区间求和

需要使用动态开点 + 标记永久化

需要注意的是 **当前点为空的话 需要返回 目标区间长度*下放标记值**

CODE:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long#define inf 0x7fffffff#define N 200080#define IL inline#define M 10008611#define D double#define R registerusing namespace std;template
IL void read(T &_){ T __=0,___=1;char ____=getchar(); while(!isdigit(____)) {if(____=='-') ___=0;____=getchar();} while(isdigit(____)) {__=(__<<1)+(__<<3)+____-'0';____=getchar();} _=___ ? __:-__;}/*-------------OI使我快乐-------------*/ll n,m,root,tot,maxn;struct Node{ ll tag,sum; Node(){tag=sum=0;}}tre[M];struct Qury{ ll knd,x,y;}e[N];ll lson[M],rson[M];IL void update(ll &now,ll lenow,ll rinow,ll le,ll ri,ll d){ if(!now) now=++tot;tre[now].sum+=(ri-le+1)*d; if(lenow==le&&rinow==ri) { tre[now].tag+=d;return; } ll mid=(lenow+rinow)>>1; if(ri<=mid) update(lson[now],lenow,mid,le,ri,d); else if(mid
>1; if(ri<=mid) return qury(lson[now],lenow,mid,le,ri,have+tre[now].tag); else if(mid

HEOI 2019 RP++

转载于:https://www.cnblogs.com/LovToLZX/p/10590679.html

你可能感兴趣的文章
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
安卓Glide(4.7.1)使用笔记 01 - 引入项目
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>
Flex布局
查看>>
Material Design之 AppbarLayout 开发实践总结
查看>>
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
白洋淀周末游
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>
正则表达式分解剖析(一文悟透正则表达式)
查看>>
解决UILable标点符号居中的问题
查看>>
HTML5新特性教程
查看>>