题意:给定一个初始数组b和一个初始值全部为0的数组a,每次操作可以在给定的区间(l,r)内让a[i](l=<i<=r)加一,或者查询区间区间(l,r)中a[i]/b[i](l=<i<=r)(取整)的和。
可以知道,$\sum_{\frac{a_i}{b_i}}\le nlogn$,所以我们只要暴力找到需要修改的位置修改即可。。
代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#define M 100010
#define ls node<<1
#define rs node<<1|1
using namespace std;
int n,q;
int maxn[M<<],minn[M<<],cnt[M<<],tag[M<<],b[M]; void update(int node)
{
minn[node]=min(minn[ls],minn[rs]);
cnt[node]=cnt[ls]+cnt[rs];
maxn[node]=max(maxn[ls],maxn[rs]);
} void build(int node,int l,int r)
{
if(l==r) {minn[node]=b[l];return;}
int mid=(l+r)/;
build(ls,l,mid);
build(rs,mid+,r);
update(node);
} void push(int node)
{
if(tag[node])
{
maxn[ls]+=tag[node];
maxn[rs]+=tag[node];
tag[ls]+=tag[node];
tag[rs]+=tag[node];
tag[node]=;
}
} void change(int node,int l,int r,int l1,int r1)
{
if(l1<=l&&r1>=r)
{
maxn[node]++;
if(maxn[node]<minn[node])
{
tag[node]++;
return;
}
if(l==r&&maxn[node]>=minn[node])
{
cnt[node]++;
minn[node]+=b[l];
return;
}
}
int mid=(l+r)/;push(node);
if(l1<=mid) change(ls,l,mid,l1,r1);
if(r1>mid) change(rs,mid+,r,l1,r1);
update(node);
} int query(int node,int l,int r,int l1,int r1)
{
if(l1<=l&&r1>=r) return cnt[node];
int mid=(l+r)/; push(node);
int ans=;
if(l1<=mid) ans+=query(ls,l,mid,l1,r1);
if(r1>mid) ans+=query(rs,mid+,r,l1,r1);
return ans;
} int main()
{
while(~scanf("%d%d",&n,&q))
{
memset(maxn,,sizeof(maxn));
memset(minn,,sizeof(minn));
memset(cnt,,sizeof(cnt));
memset(tag,,sizeof(tag));
for(int i=;i<=n;i++) scanf("%d",&b[i]);
build(,,n);
while(q--)
{
int l,r;char s[];
scanf("%s%d%d",s,&l,&r);
if(s[]=='a') change(,,n,l,r);
else printf("%d\n",query(,,n,l,r));
}
}
return ;
}

[Hdu6315]Naive Operations的更多相关文章

  1. HDU6315 Naive Operations(多校第二场1007)(线段树)

    Naive Operations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 502768/502768 K (Java/Other ...

  2. HDU-6315 Naive Operations//2018 Multi-University Training Contest 2___1007 (线段树,区间除法)

    原题地址 Naive Operations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 502768/502768 K (Java/ ...

  3. [HDU6315]Naive Operations(线段树+树状数组)

    构造一个序列B[i]=-b[i],建一颗线段树,维护区间max, 每次区间加后再询问该区间最大值,如果为0就在树状数组中对应的值+1(该操作可能进行多次) 答案在树状数组中找 其实只用一颗线段树也是可 ...

  4. HDU6315 Naive Operations(线段树 复杂度分析)

    题意 题目链接 Sol 这题关键是注意到题目中的\(b\)是个排列 那么最终的答案最多是\(nlogn\)(调和级数) 设\(d_i\)表示\(i\)号节点还需要加\(d_i\)次才能产生\(1\)的 ...

  5. HDU6315 Naive Operations 线段树

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面. Solution ...

  6. HDU-6315:Naive Operations(线段树+思维)

    链接:HDU-6315:Naive Operations 题意: In a galaxy far, far away, there are two integer sequence a and b o ...

  7. HDU 6351 Naive Operations(线段树)

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=6315 Naive Operations Time Limit: 6000/3000 MS (Java/O ...

  8. hdu 6315 Naive Operations (2018 Multi-University Training Contest 2 1007)

    Naive Operations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 502768/502768 K (Java/Other ...

  9. hdu Naive Operations 线段树

    题目大意 题目链接Naive Operations 题目大意: 区间加1(在a数组中) 区间求ai/bi的和 ai初值全部为0,bi给出,且为n的排列,多组数据(<=5),n,q<=1e5 ...

随机推荐

  1. null array mysqli_fetch_assoc ( mysqli_result $result ) void mysqli_free_result ( mysqli_result $result )

    w取最大db_id. if($row=null){ var_dump(123); } var_dump($row); if($rowb=array('ww','w123')){ var_dump(23 ...

  2. ubuntu安装wine的方法

    使用命令行安装: 1.打开终端,使用命令:sudo apt-get install wine 2.它可能会出现选择哪个版本的安装,develop是开发版本,stable是稳定版本. 通常我们选择sta ...

  3. Mysql文章笔记

    Mysql名词解释/含义/读书笔记 MVCC(Multiversion concurrency control) MySQL InnoDB存储引擎,实现的是基于多版本号的并发控制协议--MVCC (M ...

  4. Java 输入/输出流

    1. 编码问题 在介绍输入输出之前我们先介绍下关于编码的一些基本知识点.当一个文件里既有中文字符又有英文字符时.他们在不同的编码方式下会占领不同的内存: 1. ANSI 中文占领 2 个字节的内存空间 ...

  5. 010-Shell 输入/输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...

  6. sap 动态字段的使用

    1.sap中的动态字段其实类似c#里面的指针,都是指向的地址. 只是写法不同,sap 中的field-symbols就是类似指针. , b TYPE i. FIELD-SYMBOLS <fs&g ...

  7. PAT 1099 Build A Binary Search Tree[BST性质]

    1099 Build A Binary Search Tree(30 分) A Binary Search Tree (BST) is recursively defined as a binary ...

  8. 创建发布Webservice以及wsimport工具

    一. 通过wsimport生成本地代理调用WebService 1.推荐的访问服务方式 WebService已纳入w3c规范,其他的平台都支持该规范 :J2EE\Php\.NET都支持wsimport ...

  9. Oracle TRCA 工具(转)

    本篇文章主要介绍了"Oracle TRCA 工具 说明 ",主要涉及到Oracle TRCA 工具 说明 方面的内容,对于Oracle TRCA 工具 说明 感兴趣的同学可以参考一 ...

  10. php处理restful请求的路由(转载 http://www.jb51.net/article/47333.htm)

    <?php    class Router {        // 路由表        private $routers = array(            array("nam ...