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通 ...
随机推荐
- 小tips:微信小程序登录后返回登录前的页面继续操作(保留参数)
在app.js中添加如下两个方法即可: // 设置需要回调的地址 setCallbackUrl: function(mode) { return new Promise((resolve,reject ...
- Identity – user login, forgot & reset password, 2fa, external login, logout 实战篇
前言 之前写过一篇 Identity – User Login, Forgot Password, Reset Password, Logout, 当时写的比较简陋, 今天有机会就写多一篇实战版. 建 ...
- MDC – Work with Framework & Customize
前言 在 MDC – Material Design, Angular Material, MDC, MWC, Lit 的关系 中, 我有提到基于 MDC 的 Framework 生态有多糟糕. 但它 ...
- 这些年没来得及学习的一些 HTML5 标签
认识并学习下还没来得及学习的一些 HTML5 标签 <ruby> 标签 HTML <ruby> 元素被用来展示东亚文字注音或字符注释. 比如: <ruby>兄弟&l ...
- SQL注入演示
SQL注入演示 创建一个简易的登录系统/** tb_user 用户表 * 用户登录系统(需在数据库中创建tb_user表 ) */ @Test public void testUserLogin() ...
- Wpf使用NLog将日志输出到LogViewer
1 LogViewer LogViewer是通过UDP传输的高性能实时log查看器. 具有一下特性: 通过UDP读取日志 通过文件导入日志 导出日志到一个文件中 排序.过滤(日志树,日志等级)和查找 ...
- RTPS代理与转发服务
Proxy介绍 利用libevent实现网络连接和线程池.通过tcp连接的方式实现rtsp消息转发,再通过udp连接进行rtp与rtcp转发.报文解析使用到了Qt库.请尽量使用qmake进行编译.源码 ...
- kmemleak 和kasan 的区别
kmemleak 和kasan 都是 Linux 内核中的一些工具和特性,用于帮助进行内存错误检测和修复.然而,它们之间有一些区别: 功能:kmemleak 用于检测内核中未释放的内存泄漏,它可以跟踪 ...
- iOS多项选项卡TYTabPagerBar和分页控制器TYPagerController使用小结
最近做项目的时候,用到了顶部选项卡和底部分页控制器相关的功能.之前做的话都是自己手动封装,通过两个UIScrollView联动来实现.公司同事给推荐了一个封装好的库, TYPagerControlle ...
- 关于 KubeSphere IDOR 安全漏洞 CVE-2024-46528 的声明及解决方案
近期,有第三方平台的安全技术人员发现了在 KubeSphere 开源版 3.4.1 及 4.1.1 上存在不安全的直接对象引用(IDOR)的漏洞,该漏洞允许低权限的通过认证的攻击者在没有适当授权检查的 ...