博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1556 Color the ball
阅读量:7028 次
发布时间:2019-06-28

本文共 899 字,大约阅读时间需要 2 分钟。

题目链接:

可以使用线段树来做,但是使用树状数组会更加简洁,对于第i个点被涂的次数$s$,为$s=\sum_{k=1}^{i}x_k$,因此对于区间$[a,b]$的涂色,对于下标$a$增加1,对于下标$b+1$减少1,这样就可以保证对于$i\in [a,b]$中的点,$s$加1,对于$i \notin [a,b]$的点$s$ 不变。该技巧可以使得树状数组具有段更新、点查询的功能。

代码如下:

1 #define     MAX_N 1000007 2 #include 
3 #include
4 #include
5 #include
6 using namespace std; 7 int bit[MAX_N+1], n; 8 int lowbit(int x) 9 {10 return x&(-x);11 }12 int sum(int i)13 {14 int s = 0;15 while( i > 0 )16 {17 s += bit[i];18 i -= lowbit(i);19 }20 return s;21 }22 void add(int i , int x)23 {24 while( i <= n )25 {26 bit[i] += x;27 i += lowbit(i);28 }29 }30 int main()31 {32 int a,b;33 while(scanf("%d",&n),n)34 {35 memset(bit,0,sizeof(bit));36 for(int i=0;i

 

转载于:https://www.cnblogs.com/jostree/p/4003620.html

你可能感兴趣的文章
React从0到1--组件向外传递数据
查看>>
hausaufgabe--python 12-List comprehensions
查看>>
哈哈更新资源列表2
查看>>
文本的四种编码方式
查看>>
Capitals of different countries
查看>>
sql server 2000数据库备份文件还原成sql server 2005 /2008
查看>>
哈希表及冲突的方法
查看>>
iOS开发UI篇—简单的浏览器查看程序
查看>>
iOS开发网络篇—搭建本地服务器
查看>>
window 安装redis、memcache的php扩展和 reidis 、memcache 及 reids管理软件
查看>>
JOSN转列格式(csv文件)
查看>>
役物,役于物
查看>>
远程桌面连接树莓派
查看>>
技术人员白手起家,创业路。
查看>>
回忆录
查看>>
QQ能上,网页打不开
查看>>
违章处理-违章查询
查看>>
Docker Hub.拉取镜像
查看>>
G.729 之固定编码
查看>>
sql错误,提示“不是有效的标识符”
查看>>