P4879 ycz的妹子
思路
让你干啥你就干啥呗
查询第x个妹子就get一下再修改
这里稳一点就维护了三个东西,也许两个也可以
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#define ls rt<<1
#define rs rt<<1|1
#define ll long long
#define FOR(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
const int maxn = 5e5 + 7;
int read() {
int x = 0, f = 1; char s = getchar();
for (; s < '0' || s > '9'; s = getchar()) if (s == '-') f = -1;
for (; s >= '0' && s <= '9'; s = getchar()) x = x * 10 + s - '0';
return x * f;
}
int n,m;
int a[maxn];
struct node {
int l,r,size,gs;
ll sum,ans;
}e[maxn<<2];
void pushup(int rt) {
e[rt].gs=e[ls].gs+e[rs].gs;
e[rt].ans=e[ls].ans+e[rs].ans;
e[rt].sum=e[ls].sum+e[rs].sum;
}
void build(int l,int r,int rt) {
e[rt].l=l,e[rt].r=r,e[rt].size=r-l+1;
if(l==r) {
if(l<=n) {
e[rt].gs=1;
e[rt].ans=e[rt].sum=a[l];
}
return;
}
int mid=(l+r)>>1;
build(l,mid,ls);
build(mid+1,r,rs);
pushup(rt);
}
void modify_1(int L,int k,int rt) { // The Lth city plus k .
if(e[rt].l==e[rt].r) {
e[rt].sum+=k;
if(e[rt].gs) e[rt].ans+=k;
return;
}
int mid=(e[rt].l+e[rt].r)>>1;
if(L<=mid) modify_1(L,k,ls);
else modify_1(L,k,rs);
pushup(rt);
}
void modify_2(int L,int k,int rt) { // The Lth sister fell in love with him.
if(e[rt].l==e[rt].r) {
e[rt].gs=k;
e[rt].ans=e[rt].sum=0;
return;
}
int mid=(e[rt].l+e[rt].r)>>1;
if(L<=mid) modify_2(L,k,ls);
else modify_2(L,k,rs);
pushup(rt);
}
int get(int k,int rt) {
if(e[rt].l==e[rt].r)
return e[rt].l;
if(k <= e[ls].gs) return get(k,ls);
else return get(k-e[ls].gs,rs);
}
int main() {
n=read(),m=read();
FOR(i,1,n) a[i]=read();
build(1,5e5,1);
FOR(i,1,m) {
char s;
scanf("%s",&s);
if(s=='Q') {
printf("%lld\n",e[1].ans);
} else if(s=='C') {
int x=read(),y=read();
modify_1(x,-y,1);
} else if(s=='D') {
int x=read();
modify_2(get(x,1),0,1);
} else if(s=='I') {
int x=read(),y=read();
modify_2(x,1,1);
modify_1(x,y,1);
}
}
return 0;
}
P4879 ycz的妹子的更多相关文章
- 线段树【p4879】ycz的妹子
Description 机房神犇yczycz有n个青梅竹马,她们分别住在1~n号城市中.小时候的她们美丽可爱,但是由于女大十八变,有些妹子的颜值发生了变化,但是十分重感情的\(ycz\)神犇不忍心抛弃 ...
- 周末聊聊IT人员的人脉观:关于帮妹子找兼职有感
背景: 前几天,有个认识了好几年的网友,现在是大学生,在厦门读大一,说和她同学要一起到广州找兼职,看我有没有介绍. 像我这么积极热心善良的人,就说帮她找找看,结果问了几次,没消息,只好诚实的回复人家, ...
- BZOJ 3809: Gty的二逼妹子序列
3809: Gty的二逼妹子序列 Time Limit: 80 Sec Memory Limit: 28 MBSubmit: 1387 Solved: 400[Submit][Status][Di ...
- 【BZOJ-3809】Gty的二逼妹子序列 分块 + 莫队算法
3809: Gty的二逼妹子序列 Time Limit: 80 Sec Memory Limit: 28 MBSubmit: 1072 Solved: 292[Submit][Status][Di ...
- R语言-妹子被追后的选择分析
前提假设 妹子们一生中可以遇到100个追求者,追求者的优秀程度符合正态分布: 每个妹子都具备判断并比较追求者优秀程度的能力: 接受或拒绝一个追求者后永远无法后悔. 那么,问题来了 当遇到追求者时,如何 ...
- BZOJ3809: Gty的二逼妹子序列
Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方 ...
- 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
一个负心汉即将移情别恋,从51转到ARM妹子啦?其实8是的,俺准备开后宫.哇——咔~咔~~.考虑功耗和成本等问题,只有51肯定是不够的,所以嘛~~(一脸坏笑)嘿嘿~~,ARM妹子俺追定了.出于对ARM ...
- [HZWER]藏妹子之处
问题描述 今天CZY又找到了三个妹子,有着收藏爱好的他想要找三个地方将妹子们藏起来,将一片空地抽象成一个R行C列的表格,CZY要选出3个单元格.但要满足如下的两个条件: (1)任意两个单元格都不在同一 ...
- bzoj 3720: Gty的妹子树 块状树
3720: Gty的妹子树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 412 Solved: 153[Submit][Status] Descr ...
随机推荐
- js 调用声音提示
function playSound() { var borswer = window.navigator.userAgent.toLowerCase(); if ( !!window.ActiveX ...
- 2018/03/09 每日一个Linux命令 之 chgrp/chown
每日一个Linux命令 2018-03-09 Linux 命令 chgrp/chown chgrp [-参数] [文件或者目录] chown [-参数] [文件所有者]:[文件所属群组] [文件或者目 ...
- Count the Colors---zoj1610线段树
题目链接 题意: 求每种颜色有几段线段: 模拟数组: #include<stdio.h> #include<iostream> #include<algorithm> ...
- Fire Game--FZU2150(bfs)
http://acm.fzu.edu.cn/problem.php?pid=2150 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=659 ...
- 对Django框架架构和Request/Response处理流程的分析(转)
原文:http://blog.sina.com.cn/s/blog_8a18c33d010182ts.html 一. 处理过程的核心概念 如下图所示django的总览图,整体上把握以下django的组 ...
- 用laravel dingo api插件库创建api的一些心得笔记
用laravel创建api是很多大型项目正在使用的方法,一般他们都是用dingo api插件库来开发自己的api.以下是ytkah用dingo api的一些心得,有需要的朋友可以关注一下 1.安装 因 ...
- [目标检测]SSD原理
1 SSD基础原理 1.1 SSD网络结构 SSD使用VGG-16-Atrous作为基础网络,其中黄色部分为在VGG-16基础网络上填加的特征提取层.SSD与yolo不同之处是除了在最终特征图上做目标 ...
- SQLAlchemy技术文档(中文版)(全)
原文链接:http://www.cnblogs.com/iwangzc/p/4112078.html(感谢作者的分享) sqlalchemy 官方文档:http://docs.sqlalchemy.o ...
- OpenCV中PCA实现人脸降维
前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. ...
- [LeetCode] 711. Number of Distinct Islands II_hard tag: DFS
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...