Gym - 101744E卡了我半天的题。。。。原来是才学的树状数组。。。
最近学的不错的树状数组。。。比赛的时候居然忘记了,害的我卡了半天,心态炸掉了。。。再写一下题解
http://codeforces.com/gym/101744/problem/E
其实本题就是一个给定序列,多次询问求数组区间和。。。这不明摆着的树状数组吗???
树状数组就是求前i项的和,这样只需要
ans=sum(end)-sum(start-1)即可,避免了多次询问的尴尬。。。反正记住,一般序列求和都是树状数组
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
long long tree[100050];
int a[100050];
int n,m;
int b,e;
long long lowbit(long long x){return x&(-x);
}
void add(long long i,long long x){while (i<=n){tree[i]+=x;i+=lowbit(i);}
}
long long getsum(long long x){long long sum=0;while (x>0){sum+=tree[x];x-=lowbit(x);}return sum;
}
int main(){long long ans;while (~scanf("%d%d",&n,&m)){memset(tree,0,sizeof(tree));for (int i=1;i<=n;i++){scanf("%d",&a[i]);add(i,a[i]);}for (int i=1;i<=m;i++){scanf("%d%d",&b,&e);ans=getsum(e)-getsum(b-1);if (ans%2==1)printf("Nao\n");else printf("Sim\n");}}return 0;
}
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
long long tree[100050];
int a[100050];
int n,m;
int b,e;
long long lowbit(long long x){return x&(-x);
}
void add(long long i,long long x){while (i<=n){tree[i]+=x;i+=lowbit(i);}
}
long long getsum(long long x){long long sum=0;while (x>0){sum+=tree[x];x-=lowbit(x);}return sum;
}
int main(){long long ans;while (~scanf("%d%d",&n,&m)){memset(tree,0,sizeof(tree));for (int i=1;i<=n;i++){scanf("%d",&a[i]);add(i,a[i]);}for (int i=1;i<=m;i++){scanf("%d%d",&b,&e);ans=getsum(e)-getsum(b-1);if (ans%2==1)printf("Nao\n");else printf("Sim\n");}}return 0;
}
Gym - 101744E卡了我半天的题。。。。原来是才学的树状数组。。。相关推荐
- 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组
题目大意 维护一个\(n\times m\)的矩阵,有两种操作: \(1~x_1~y_1~x_2~y_2~v\):把\((a,b),(c,d)\)为顶点的矩形区域内的所有数字加上\(v\). \(2~ ...
- 【练习手记】【多题合集】用树状数组做线段树练习1、2、3
Warning:本篇无任何思路解释 ---------------------------------------------- 线段树练习 时间限制: 1 s 空间限制: 128000 KB 题目等 ...
- HDU1166 敌兵布阵(树状数组模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- (每日一题)P3312 [SDOI2014]数表(经典莫比乌斯反演 + 树状数组维护离线询问)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.11 莫反 P3312 [SDOI2 ...
- hdu1166敌兵布阵 树状数组裸题
树状数组裸题 动态更新区间内的点,动态查询区间和 敌兵布阵 ac代码 #include<iostream> #include<algorithm> #include<cs ...
- 经典算法题每日演练——第十题 树状数组
原文:经典算法题每日演练--第十题 树状数组 有一种数据结构是神奇的,神秘的,它展现了位运算与数组结合的神奇魅力,太牛逼的,它就是树状数组,这种数据结构不是神人是发现不了的. 一:概序 假如我现在有个 ...
- hdu 1166 敌兵布阵 树状数组 模板题
这题是树状数组入门的一模板题,非常基础,被小白成为"赤裸裸"的入门题,哈哈,一个plus,一个sum全部搞定 #include<stdio.h> #include< ...
- [蓝桥杯][2018年第九届真题]整理玩具(树状数组)
题目描述 小明有一套玩具,一共包含NxM个部件.这些部件摆放在一个包含NxM个小格子的玩具盒中,每个小格子中恰好摆放一个部件. 每一个部件上标记有一个0~9的整数,有可能有多个部件标记相同的整数. 小 ...
- 蓝桥杯2014届试题9题 小朋友排队(树状数组+类逆序对)
题目: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的 ...
最新文章
- vs连接mysql建一个表并增删查改_VS连接SQL Server数据库,增删改查详细教程(C#代码)...
- 人与人的差距在于认知
- 修复“-bash: locate: command not found”
- 对计算机图形学知识总结第二版,计算机图形学入门总结!
- 【数据结构与算法】之深入解析“解码方法”的求解思路与算法示例
- datax 定时执行多个job_DataX在有赞大数据平台的实践
- mongodb数据合并设计_MongoDB:将来自多个集合的数据合并成一个
- Python if语句Demo
- Python 入门介绍
- But Wang Xing, who is concerned about long-term
- 【转】Linux的僵尸进程解决攻略
- Pytorch和Torchvision版本对应
- 《Phper》MySQL 的一些基本操作
- mysql dbutil_通过dbutil操作数据库
- 营业执照在线生成_营业执照用旧的?办新的?办电子的?丨现在选哪个都很“好办”...
- Springboot自行车在线租赁系统毕业设计源码101157
- 广电linux机顶盒装软件,电视盒子如何安装第三方软件(四种参考方法)
- QQ现状深度剖析:你还认为QQ已经被微信打败了吗?
- 深圳“托育”放大招!政府出钱帮你带娃啦!
- 网络工程师——Super VLAN
热门文章
- 惊了,饿了么校园版月卡竟是最大骗局,怎么点都比普通(尊享)版月卡亏,以下是证明
- 如何用计算机快捷键代替鼠标,用鼠标代替快捷键,你的 Windows 还能这么操作?...
- vmware虚拟化平台虚拟机迁移至H3C CAS虚拟化平台
- 【矩阵论】内积空间与等距变换(2)
- Orac and LCM(数论)
- linux安全狗 停止服务,安全狗linux,windows安装设置
- cmd搭建vue前端项目详细过程
- matlab初始化很久,【原创】Matlab初始化initializing极慢解决方法
- 算法设计之DP练习(组硬币问题)
- 经典著作《动手学深度学习》中文版2.0beta版发布!开源下载!