题目:

题解:

题解如上图,至于计算大于s的数字的数量和小于s数字的和用权值线段树或者树状数组维护就行了···注意离散化

另外发现cout和puts比printf快好多·····

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
const int N=1e6+;
int b[N*],cnt,len,que[N*];
struct node
{
long long sum;
int cnt;
}tree[N*];
struct node2
{
int op;
int a,b;
}q[N*];
int n,m;
char s[];
inline void lsh()
{
sort(b+,b+cnt+);
len=unique(b+,b+cnt+)-b-;
for(int i=;i<=m;i++)
q[i].b=lower_bound(b+,b+len+,q[i].b)-b;
}
inline int R()
{
int i=,f=;
char c;
for(c=getchar();(c<''||c>'');c=getchar());
for(;c>=''&&c<='';c=getchar())
f=(f<<)+(f<<)+c-'';
return f*i;
}
int lowbit(int i)
{
return i&(-i);
}
void insert(int x)
{
if(x==) return;
for(int i=x;i<=len;i+=lowbit(i))
{
tree[i].cnt++;
tree[i].sum=(long long)tree[i].sum+b[x];
}
}
void Delete(int x)
{
if(x==) return;
for(int i=x;i<=len;i+=lowbit(i))
{
tree[i].cnt--;
tree[i].sum=(long long)tree[i].sum-b[x];
}
}
int calccnt(int x)
{
if(x==) return ;
int temp=;
for(int i=x;i>=;i-=lowbit(i))
temp+=tree[i].cnt;
return temp;
}
long long calcsum(int x)
{
if(x==) return ;
long long temp=;
for(int i=x;i>=;i-=lowbit(i))
temp+=tree[i].sum;
return temp;
}
int main()
{
//freopen("t3.in","r",stdin);
//freopen("t3.out","w",stdout);
n=R(),m=R();
for(int i=;i<=m;i++)
{
scanf("%s",s);
if(s[]=='U')
q[i].op=;
else
q[i].op=;
q[i].a=R(),q[i].b=R();
b[++cnt]=q[i].b;
}
lsh();
for(int i=;i<=m;i++)
{
if(q[i].op==)
{
if(que[q[i].a]!=)
Delete(que[q[i].a]);
insert(q[i].b);
que[q[i].a]=q[i].b;
}
else
{
int cntt=calccnt(len)-calccnt(q[i].b-);
if(cntt>=q[i].a) puts("Yes");
else
{
long long sum=calcsum(q[i].b-);
if(sum>=(long long)(q[i].a-cntt)*b[q[i].b])
puts("Yes");
else
puts("No");
}
}
}
return ;
}

刷题总结——系列维护(ssoi)的更多相关文章

  1. 刷题总结——road(ssoi)

    题目: 题目背景 SOURCE:NOIP2016-RZZ-1 题目描述 有 N 个城市,这些城市通过 M 条无向边互相连通,每条边有一个权值 Ci ,表示这条边的长度为 2^(Ci) ,没有两条边的长 ...

  2. 刷题总结——table(ssoi)

    题目: 题目背景 SOURCE:NOIP2016-RZZ-2 T2 题目描述 给定一个 n×m 的矩阵,行列均从 1 开始标号. 一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数 ...

  3. 刷题总结——shortest(ssoi)

    题目: 题目背景 SOURCE:NOIP2015-SHY-3 题目描述 给定一张 n 个点的有向带权完全图,和一个数组 a[] ,请按顺序删除数组中的点,请求出在删除点 a[i] 以前,所有未删除点对 ...

  4. 刷题总结——路径(ssoi)

    题目: 题目背景 CF 57D 题目描述 小美今天和她的好朋友在玩捉迷藏游戏.地图可以抽象成一张 n*m 的图,地图上有一些障碍.但这些障碍有一些性质:1:每个障碍周围 8 个格子是没有障碍的.2:每 ...

  5. 刷题总结——鸭舌(ssoi)

    题目: 题目背景 CF 77C 题目描述 小美喜欢吃鸭舌.有一个 n 个点的树,每个节点 i ,第 i 个点上有 ai 个鸭舌.小美一开始处于 x 号点.每次小美可以选择一个与现在的点有边的点而且那个 ...

  6. 刷题总结——电影(ssoi)

    题目: 题目背景 SOURCE:NOIP2014-SXYZ T2 题目描述 小美去看电影,发现这个电影票很神奇,有一个编号 (x,y) 表示为第 x 排第 y 位. 小美是个聪明的女孩子,她有自己的一 ...

  7. LeetCode刷题系列

    LeetCode 我们工作面试和提高自身数据结构和算法能力的时候往往需要刷刷题,我选择LeetCode是通过一个留学论坛了解的.专业,覆盖语种全面. 提前说说刷题的心得: 尽量手写代码,少使用IDE的 ...

  8. ife任务刷题总结(一)-css reset与清除浮动

    本文同时发布于本人的个人网站www.yaoxiaowen.com 百度创办的前端技术学院,是一个面向大学生的前端技术学习平台.虽然只有大学生才有资格报名,提交代码进行比赛排名.但是这并不妨碍我们这些初 ...

  9. 【BZOJ-4590】自动刷题机 二分 + 判定

    4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 156  Solved: 63[Submit][Status ...

随机推荐

  1. 指定ip地址登陆服务器

    [root@localhost ~]# cat /etc/hosts.allow ## hosts.allow   This file contains access rules which are ...

  2. Android学习总结(三)——IntentService的用法

    一.IntentService的基本概念 IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentServi ...

  3. Gym 100342I Travel Agency (Tarjan)

    题意读懂了就好做了,就是求一下点双连通分量.维护一下一颗子树的结点数,对于一个结点当u是割点的时候, 统计一下u分割的连通分量v,每得到一个连通分量的结点数cnt(v)和之前连通分量结点数sum相乘一 ...

  4. HDU 6041 I Curse Myself(点双联通加集合合并求前K大) 2017多校第一场

    题意: 给出一个仙人掌图,然后求他的前K小生成树. 思路: 先给出官方题解 由于图是一个仙人掌,所以显然对于图上的每一个环都需要从环上取出一条边删掉.所以问题就变为有 M 个集合,每个集合里面都有一堆 ...

  5. git - GNU 交互工具

    语法 git [options] [path1] [path2] gitps [options] gitview [options] filename 注意 GIT 包 的 主要 配置文件 是 .gi ...

  6. Mysql闪回工具之binlog2sql的原理及其使用

    生产上误删数据.误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太大,成 ...

  7. linux——nmap端口扫描命令

    先安装 nmap :apt-get install nmap 端口扫描命令nmap -sS 172.16.55.100nmap -Pn 172.16.55.100第一组渗透测试指令,用于情报收集. 要 ...

  8. 人脸识别源代码Open cv

    #include <stdio.h> #include <string.h> #include "cv.h" #include "cvaux.h& ...

  9. 初涉最小表示法&&bzoj1398: Vijos1382寻找主人 Necklace

    把最小表示法的坑填了 Description 给定两个项链的表示,判断他们是否可能是一条项链. Input 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的) ...

  10. (19)zabbix Applications使用介绍

    介绍 Applications(我们翻译为应用程序)是item的一个组. 例如我们要监控MySQL,我们可以将所有和MySQL相关的item放到这个应用程序中. 例如MySQL的availabilit ...