当前位置: 首页 > news >正文

div做网站上海网站建设安全

div做网站,上海网站建设安全,卧龙区2015网站建设口碑,mvc做的游戏网站代码实验内容: HDU 1166 敌兵布阵【线段树】 线段树的应用 敌兵布阵 C国的死对头A国这段时间正在进行军事演习#xff0c;所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取…实验内容: HDU 1166 敌兵布阵【线段树】 线段树的应用     敌兵布阵 C国的死对头A国这段时间正在进行军事演习所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上开始计算这一段的总人数并汇报。但敌兵营地的人数经常变动而Derek每次询问的段都不一样所以Tidy不得不每次都一个一个营地的去数很快就精疲力尽了Derek对Tidy的计算速度越来越不满:你个死肥仔算得这么慢我炒你鱿鱼!”Tidy想:“你自己来算算看这可真是一项累人的工作!我恨不得你炒我鱿鱼呢!”无奈之下Tidy只好打电话向计算机专家Windbreaker求救,Windbreaker说:“死肥仔叫你平时做多点acm题和看多点算法书现在尝到苦果了吧!”Tidy说:我知错了。。。但Windbreaker已经挂掉电话了。Tidy很苦恼这么算他真的会崩溃的聪明的读者你能写个程序帮他完成这项工作吗?不过如果你的程序效率不够高的话Tidy还是会受到Derek的责骂的. 【输入描述】 第一行一个整数T表示有T组数据。 每组数据第一行一个正整数NN50000,表示敌人有N个工兵营地接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人1ai50。 接下来每行有一条命令命令有4种形式: (1) Add i j,i和j为正整数,表示第i个营地增加j个人j不超过30 (2)Sub i j ,i和j为正整数,表示第i个营地减少j个人j不超过30; (3)Query i j ,i和j为正整数,ij表示询问第i到第j个营地的总人数; (4)End 表示结束这条命令在每组数据最后出现; 每组数据最多有40000条命令 【输出描述】 对第i组数据,首先输出“Case i:”和回车, 对于每个Query询问输出一个整数并回车,表示询问的段中的总人数,这个数保持在int以内。 【样例输入】 1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End 【样例输出】 6 33 59 【参考代码】 使用了树状数组没有使用线段树 #include bits/stdc.h using namespace std;const int N 50001; int people[N], tree[N], ans[N]; #define lowbit(x) ((x) -(x)) int n;void add(int x, int d) {while(x n){tree[x] d;x lowbit(x);} }int sum(int x) {int sum 0;while(x 0){sum tree[x];x - lowbit(x);}return sum; }int findposition(int x) //二分查找 {return lower_bound(tree1, tree1N, x) - (tree 1); } /* 1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End */int main() {string s;int t, temporary1, temporary2;cint;for(int i1; it; i){cout Case i : endl;cinn;for(int j1; jn; j){cinpeople[j];add(j, people[j]); //求和}while(cin s s ! End){cin temporary1 temporary2;if(s Query) //询问i到j的总人数{ //n-mf(n)-f(m-1)int ans1 sum(temporary1 - 1);int ans2 sum(temporary2);cout ans2 - ans1 endl;}else if(s Add) //第i个基地增加j人{add(temporary1, temporary2); //更新tree数组}else //第i个基地减少j人{add(temporary1, -temporary2); //更新tree数组}} } } 放两张图不然看不懂 tree数组的值  2)tree[]数组的更新         更改ax,那么和它相关的tree[]都会变化。例如改变a3,那么tree[3]、tree[4]、tree[8] 等都会改变。同样,这个计算也利用了lowbit(x)。         首先更改 tree[3];         然后3lowbit(3)4,更改tree[4];         接着 4lowbit(4)8,更改tree[8];         继续,直到最后的tree[n]。         编程细节见函数add(),复杂度也是O(log2n)。add()函数也用于tree[]的初始化过程: tree[]初始化为0,然后用add()逐一处理 a1,a2,…,an。
http://www.hkea.cn/news/14348239/

相关文章:

  • 云平台网站优化湖南乔口建设公司网站
  • isp网站接入做哪些业务wordpress做的博客
  • 网站资料素材怎么做中建西部建设网站
  • 龙华网站建设设计制作公司中国建设银行校园招聘网站
  • 制作空间主页网站东莞网站空间
  • c网站开发教程青浦做网站公司
  • 网站推广策略方法企业内部网站如何建设
  • 有没有专门做ppt的网站吗设计邦官网
  • 网站开发 -(广告)平面设计公司有什么职位
  • worldpress做网站简洁大气企业网站源码
  • 怎么学习网站开发怎么进成品网站后台
  • 陕西省住房和城乡建设厅综合服务网站南宁本地网站
  • 搜索引擎对网站推广的作用vs做网站如何输出
  • 设备技术支持东莞网站建设宁波住房和城乡建设局网站首页
  • 怎样设计手机网站建设西安市平台公司
  • 关于网站建设的广告语idc网站是用什么语言做的
  • 陕西百度代理公司seo顾问推推蛙
  • 网站备案怎么在工信部信息核验郴州新网交友信息
  • 企业做网站有用么辽宁建设工程信息网招标公呿
  • 郑州餐饮网站建设公司中国机加工企业哪里最多
  • 网站建设的视频南京开发app的公司
  • 哪个网站可以做立体字的模板wordpress获取手机号
  • 厦门网站建设制作多少钱soso搜搜
  • 免费高清视频素材app哪里找seo薪资seo
  • 营销型企业网站网站建设设计视频
  • 公司开网站干嘛wordpress不安装先写前端
  • 网页转向功能网站指数运算公式大全
  • 国内优秀网站设计wordpress黑桃锤击
  • 什么是php网站商标注册平台官网
  • 使用dw如何给网站做电影内网网站建设的步骤过程