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

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

解法一:线段树, 延迟更新.

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 #define MAXN 100001 8 #define lson l, mid, rt<<1 9 #define rson mid+1, r, rt<<1|110 11 int sum[MAXN<<2];12 int delta[MAXN<<2];13 14 void PushUp(int rt) {15 sum[rt] = sum[rt<<1] + sum[rt<<1|1];16 }17 18 void PushDown(int rt, int n) {19 if (delta[rt]) {20 delta[rt<<1] += delta[rt];21 delta[rt<<1|1] += delta[rt];22 sum[rt<<1] += delta[rt] * (n - (n>>1));23 sum[rt<<1|1] += delta[rt] * (n>>1);24 delta[rt] = 0;25 }26 }27 28 void build() {29 memset(sum, 0, sizeof(sum));30 memset(delta, 0, sizeof(delta));31 }32 33 void update(int ll, int rr, int l, int r, int rt) {34 if (ll<=l && rr>=r) {35 delta[rt]++;36 sum[rt] += r-l+1;37 return ;38 }39 PushDown(rt, r-l+1);40 int mid = (l+r)>>1;41 if (ll <= mid)42 update(ll, rr, lson);43 if (mid < rr)44 update(ll, rr, rson);45 PushUp(rt);46 }47 48 int query(int ll, int rr, int l, int r, int rt) {49 if (ll<=l && rr>=r) {50 return sum[rt];51 }52 PushDown(rt, r-l+1);53 int mid = (l+r)>>1, ret = 0;54 if (ll <= mid)55 ret += query(ll, rr, lson);56 if (mid < rr)57 ret += query(ll, rr, rson);58 return ret;59 }60 61 int main() {62 int n, a, b;63 int i, tmp;64 65 while (scanf("%d", &n)!=EOF && n) {66 build();67 for (i=0; i

解法二:树状数组

1 #include 
2 #include
3 4 #define MAXN 100001 5 6 int sum[MAXN]; 7 int n; 8 9 int lowbit(int x) {10 return x&(-x);11 }12 13 void update(int x, int delta) {14 while (x <= n) {15 sum[x] += delta;16 x += lowbit(x);17 }18 }19 20 int getSum(int x) {21 int ret = 0;22 while (x > 0) {23 ret += sum[x];24 x -= lowbit(x);25 }26 return ret;27 }28 29 int main() {30 int i, a, b;31 32 while (scanf("%d", &n)!=EOF && n) {33 memset(sum, 0, sizeof(sum));34 for (i=1; i<=n; ++i) {35 scanf("%d %d", &a, &b);36 update(a, 1);37 update(b+1, -1);38 }39 for (i=1; i<=n; ++i) {40 int tmp = getSum(i);41 if (i != n)42 printf("%d ", tmp);43 else44 printf("%d\n", tmp);45 }46 }47 return 0;48 }

 

转载于:https://www.cnblogs.com/bombe1013/p/4014690.html

你可能感兴趣的文章
H.264rtp封装代码
查看>>
linux监控详细说明配置----zabbix(4.0)
查看>>
iptables之一:原理及语法
查看>>
zabbix 之自定义key(10)
查看>>
恢复路由器的IOS
查看>>
lrzsz
查看>>
自营B2C无法取代淘宝
查看>>
Fresco使用及问题
查看>>
昨日西红柿 今日迷你挑 京东上市蒙阴影
查看>>
Quartz2D使用(绘制基本图形)
查看>>
Java集合框架复习
查看>>
Hyper-v的PowerShell生涯:安装和配置
查看>>
VS2005 软件项目目录设置
查看>>
利用企业微信公众平台实现秒级接收微信报警邮件(zabbix3.2.1)
查看>>
详谈项目集成OLAP多维分析报表JPivot并实现多维分析平台自主化
查看>>
android ListView几个比较特别的属性
查看>>
Yii中session的操作
查看>>
CentOS防火墙的配置
查看>>
sqlite3数据类型和函数
查看>>
Ubuntu 12.04创建桌面启动器方法
查看>>