ZCMU-1156


思路:
- 要改变的是一个范围的情况,所以正常情况下会超时。
- 查阅后知道应该用一个叫做树状数组的结构。
注意:
- 我没怎么看懂,可能没太仔细看。
- 树状数组当中存在的是前后的差,所以每次变动只是在start,end+1变动.
- 因为一直上去的是lowbit情况,方便后面前缀和。
- 因为树状数组存放的不是本身的值,通过前缀和来求到。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int MAX=1000005;
int lan[MAX];
int n,m;
//树状数组的相关知识
int lowbit(int x){
return x&(-x);
}
//单点更新
void update(int x,int val){
for(int i=x;i<=n;i+=lowbit(i)){
lan[i]+=val;
}
}
//范围更新
void range_update(int start,int end,int val){
update(start,val);
//其中树状数组存放的是前后的差。
//在数里面修改和差为logN,没有遍历。
update(end+1,-val);
}
//前缀和
int ask(int x){
int sum=0;
for(int i=x;i;i-=lowbit(i))
sum+=lan[i];
return sum;
}
int main(){
while(~scanf("%d%d",&n,&m)){
memset(lan,0,sizeof(lan));
for(int i=0;i<m;i++){
int flag,start,end;
scanf("%d%d%d",&flag,&start,&end);
//可能出现后大,题目没有告知谁大
if(start>end) swap(start,end);
if(flag){
range_update(start,end,1);
}else{
for(int j=start;j<=end;j++){
if(ask(j)&1)cout<<1;
else cout<<0;
}
cout<<endl;
}
}
}
return 0;
}
ZCMU-1156的更多相关文章
- ural 1156. Two Rounds
1156. Two Rounds Time limit: 2.0 secondMemory limit: 64 MB There are two rounds in the Urals Champio ...
- FJNU 1156 Fat Brother’s Gorehowl(胖哥的血吼)
FJNU 1156 Fat Brother’s Gorehowl(胖哥的血吼) Time Limit: 1000MS Memory Limit: 257792K [Description] [题目 ...
- Sicily 1156. Binary tree
题目地址:1156. Binary tree 思路: 如何愉快地前序输出呢,要在存储数据的时候根据位置来存放数据! 一开始被自己蠢哭,一直以为第一个输入的就是根结点(例子的祸害呀啊啊啊!!!!),结果 ...
- 编程之美2015初赛第一场 hihoCoder #1156 : 彩色的树(染色问题)
#1156 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, , …, n.树中有n - 1条边,任意两个节点间恰好有一条 ...
- ZCMU 1894: Power Eggs
http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1894 题意: 有M个鹰蛋,N层楼,鹰蛋的硬度是E,也就是说在1~E层楼扔下去不会碎,E+1层楼扔 ...
- ZCMU 2177 Lucky Numbers (easy)
传送门: http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2177 2177: Lucky Numbers (easy) 时间限制: 2 Sec ...
- 九度OJ 1156:谁是你的潜在朋友 (并查集)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5802 解决:2593 题目描述: "臭味相投"--这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多 ...
- 洛谷 1156 dp
洛谷1156 dp 类背包问题 老久没有自己想出来过dp方程了,,,虽然到最后还是只写了30分,,, 设dp[j]表示最大生命值为i时的最大高度,则对于每个物品,可以选择吃掉或者放上去,即转移为dp[ ...
- UVA 1156 - Pixel Shuffle(模拟+置换)
UVA 1156 - Pixel Shuffle 题目链接 题意:依据题目中的变换方式,给定一串变换方式,问须要运行几次才干回复原图像 思路:这题恶心的一比,先模拟求出一次变换后的相应的矩阵,然后对该 ...
- hdu 1156 && poj 2464 Brownie Points II (BIT)
2464 -- Brownie Points II Problem - 1156 hdu分类线段树的题.题意是,给出一堆点的位置,stan和ollie玩游戏,stan通过其中一个点画垂线,ollie通 ...
随机推荐
- SQL Server – History Table (Audit/Archive Table)
前言 续上一篇的 Soft Delete 后, 我们继续来看看 History Table (Audit/Archive Table). Archive Table 市场上有了这样叫, 但我觉得它比较 ...
- 微信小程序开发疑难
1.开发者工具在小程序webview中注入wx时会提示token过期,但真机正常
- @vue/cli typescript插件使用指南
步骤 使用 yarn add 安装 @vue/cli-service 对应版本的 @vue/cli-plugin-typescript 例如:"@vue/cli-service": ...
- Filter——过滤器
Filter Filter 快速入门 Filter 执行流程 1.放行前,对 request 数据进行处理 2.放行后,对 response 数据进行处理 ...
- 实战合集 | I/O 2021 Flutter 研讨会
2021 年的 Google I/O 大会已圆满闭幕,本次大会带来了诸多关于各项谷歌开发技术产品的最新更新.在此次 I/O,Flutter 发布了 2.2 版本,包括 Web 版的增强.更多 Mate ...
- 开发板、windows、虚拟机互相ping通/ VMNET0、VMNET1、VMNET8释义
当前环境:板子通过网线连接windows 问题: 我当前的板子可以ping通windows,windows也能ping通ubuntu.但是板子却ping不通ubuntu. 原因: ubuntu通过NA ...
- os.path.basename()和os.path.splitext()
1.os.path.splitext()是用来分离文件名与扩展名: 2.os.path.basename()他返回的是一个base name,我认为就是路径最后一个文件名. import os fna ...
- 数据库周刊59丨GaussDB(for openGauss)开放商用;人大金仓保障冬奥会演练顺利完成;MDL锁导致的MySQL问题分析;PG日志使用手册;达梦表空间查询;数据库笔试题面试题集……
热门资讯 1.openGauss 上线华为云正式商用 - GaussDB(for openGauss) [摘要]近日,GaussDB(for openGauss)已于华为云官网全面开放商用.该产品是华 ...
- 自定义指令 v-imgerror 当图片的 src 资源 无效 就替换 默认的 src 显示图片
// 回顾自定义指令 // 作用 : 自定义一些对dom操作的快捷指令 // 前提:指令就是用来操作 dom (v-if /v-show/v-for ....) // 语法:Vue.directive ...
- AOT漫谈专题(第四篇): C#程序如何编译成Native代码
一:背景 1. 讲故事 大家都知道所谓的.NET Native AOT即通过AOT编译器直接将C#代码编译成机器码,大家也习惯用C/C++的编译过程来类比,都是静态编译本质上都差不多,这篇我们借助工具 ...