D - 敌兵布阵

Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

Lily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易。她把她的花依次排成一行,每盆花都有一个美观值。如果Lily把某盆花照料的好的话,这盆花的美观值就会上升,如果照料的不好的话,这盆花的美观值就会下降。有时,Lily想知道某段连续的花的美观值之和是多少,但是,Lily的算术不是很好,你能快速地告诉她结果吗?

Input

  1. 第一行一个整数T,表示有T组测试数据。
  2. 每组测试数据的第一行为一个正整数N(N<=50000),表示LilyN盆花。接下来有N个正整数,第i个正整数ai表示第i盆花的初始美观值(1<=ai<=50)。
  3. 接下来每行有一条命令,命令有4种形式:
  4. 1Add i j, ij为正整数,表示第i盆花被照料的好,美观值增加j(j<=30)
  5. 2Sub i j, ij为正整数,表示第i盆花被照料的不好,美观值减少j(j<=30)
  6. 3Query i j, ij为正整数,i<=j,表示询问第i盆花到第j盆花的美观值之和
  7. 4End,表示结束,这条命令在每组数据最后出现
  8. 每组数据的命令不超过40000
  1.  

Output

  1. 对于第i组数据,首先输出"Case i:"和回车。
  2. 对于每个"Query i j"命令,输出第i盆花到第j盆花的美观值之和。

Sample Input

1
9
7 9 8 4 4 5 4 2 7
Query 7 9
Add 4 9
Query 3 6
Sub 9 6
Sub 3 3
Query 1 9
End
  1.  

Sample Output

Case 1:
13
30
50
 
问题分析:一开始直接两个for循环“企图”暴力穷举,不过TLE当头一棒,后面用树状数组解决此题。
  1. #include "cstdio"
  2. #include "string.h"
  3. int flower[];
  4. int n;
  5. void add(int a,int b)
  6. {
  7. while (a <= n)
  8. {
  9. flower[a] += b;
  10. a += a & -a;
  11. }
  12. }
  13. int sum(int a)
  14. {
  15. int s=;
  16. while (a>)
  17. {
  18. s += flower[a];
  19. a -= a & -a;
  20. }
  21. return s;
  22. }
  23. int main()
  24. {
  25. int t,a,b;
  26. char s[];
  27. scanf ("%d",&t);
  28. for (int j=;j<=t;j++)
  29. {
  30. scanf("%d",&n);
  31. memset(flower,,sizeof(flower));
  32. for (int i=;i<=n;i++)
  33. {
  34. scanf ("%d",&b);
  35. add(i,b);
  36. }
  37. printf("Case %d:\n",j);
  38. while (scanf ("%s",s) && s[] != 'E')
  39. {
  40. scanf ("%d%d",&a,&b);
  41. if (s[] == 'A')
  42. add(a,b);
  43. if (s[] == 'S')
  44. add(a,-b);
  45. if (s[] == 'Q')
  46. printf ("%d\n",sum(b)-sum(a-));
  47. }
  48. }
  49. return ;
  50. }

暑假集训(2)第四弹 ----- 敌兵布阵(hdu1166)的更多相关文章

  1. 敌兵布阵hdu1166

    /* 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. 暑假集训(4)第四弹 -----排列,计数(hdu1465)

    题意概括:嗯,纵使你数次帮助小A脱离困境,但上一次,小A终于还是失败了.那数年的奔波与心血,抵不过轻轻一指,便彻底 湮灭,多年的友谊终归走向末路.这一切重击把小A彻底击溃! 不为什么,你到底还是要继续 ...

  3. 暑假集训(3)第四弹 -----Frogger(Poj2253)

    题意梗概:青蛙王子最近喜欢上了另一只经常坐在荷叶上的青蛙公主.不过这件事不小心走漏了风声,被某fff团团员知 道了,在青蛙王子准备倾述心意的那一天,fff团团员向湖泊中注入大量的充满诅咒力量的溶液.这 ...

  4. 暑假集训(1)第四弹 -----Find a way(Hdu2612)

    Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Nin ...

  5. (线段树)敌兵布阵--hdu--1166 (入门)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166 自己第一次在没有看题解AC出来的线段树,写的可能不是太好,再贴个学长的代码,学习一下 发现自己的U ...

  6. 敌兵布阵-HDU1166 点修改+区间查询

    题目:C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...

  7. 敌兵布阵 HDU1166

    基础线段树 #include<cstdio> #include<iostream> using namespace std; int n,p,a,b,m,x,y,ans; st ...

  8. HDU 1166敌兵布阵+NOJv2 1025: Hkhv love spent money(线段树单点更新区间查询)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. 敌兵布阵(线段树HDU 1166)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

随机推荐

  1. Applied Functional Analysis(Applications to Mathematical Physics ) E.Zeidler

     Applied Functional Analysis(Applications to Mathematical Physics )   E.Zeidler More: QQ565055403

  2. Android设计模式系列-适配器模式

    对于android开发者来说起,适配器模式简直太熟悉不过,有很多应用可以说是天天在直接或者间接的用到适配器模式,比如ListView.ListView用于显示列表数据,但是作为列表数据集合有很多形式, ...

  3. cocos2d-x 触摸偏移

    转自:http://www.cnblogs.com/fjut/archive/2012/04/28/2475693.html //ccTouchBegan必须实现,否则会报错 bool PicScan ...

  4. iOS stretchableImageWithLeftCapWidth 图片放大不变形

    转载自:http://www.cnblogs.com/bandy/archive/2012/04/25/2469369.html - (UIImage *)stretchableImageWithLe ...

  5. http://www.360doc.com/content/10/1012/09/3722251_60285817.shtml

    http://www.360doc.com/content/10/1012/09/3722251_60285817.shtml http://www.docin.com/p-163063250.htm ...

  6. css3 字体旋转

    <style> #mycon { font-weight: bold; font-size: 150px; transform: rotateX(10deg); -webkit-trans ...

  7. MySQL使用hugepage

    http://blog.csdn.net/dba_waterbin/article/details/9669929http://www.cnblogs.com/LMySQL/p/4689868.htm ...

  8. [Effective C++ --013]以对象管理资源

    这一节基本讲述的是将资源放进管理对象,防止忘记释放资源. 1.一般New和Delete使用场景 void fun() { SimpleClass* pSimpleClass1 = new Simple ...

  9. Qt数据库(sqlite) — 总结

    #include <QtSql>QT += sql QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录 第一: ...

  10. C#_delegate - Pair<T> 静态绑定

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...