外贸网站是怎么做的昆山做网站费用
news/
2025/9/24 11:29:09/
文章来源:
外贸网站是怎么做的,昆山做网站费用,做策划的工资高吗,视频网站怎么做算法Problem DescriptionC国的死对头A国这段时间正在进行军事演习#xff0c;所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段#xff0c;所以每个工兵营地…Problem Description 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的责骂的. Input 第一行一个整数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条命令 Output 对第i组数据,首先输出“Case i:”和回车, 对于每个Query询问输出一个整数并回车,表示询问的段中的总人数,这个数保持在int以内。 Sample Input 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 Sample Output Case 1: 6 3359 以后改用c语言啊c老超时 a[]代表原数组c[]代表建立的树状数组 思路这是一道树状数组的题目最重要的就是如何建立树状数组c[n] 我代码如下 for(i1;in;i)for(ji;ji-lowbit(i);j--)c[i]a[j]; 还有三个调用函数要理解 第一个 返回的值就是表示数组c[x]中有几个a[]c[x]a[x-(x(-x)]……a[x-1]a[x]int lowbit(int x)
{return x(-x);
}第二个求前n项和的 int Sum(int n)
{int sum0;while(n0){sumc[n];nn-lowbit(n);}return sum;
}第三个当数组中的元素有变更时树状数组就发挥它的优势了改变是在树状数组c[]中改变的不改变a[] void Change(int i,int x,int n)
{while(in){c[i]x;iilowbit(i);}
} 这道题的代码 #include iostream
#include string
#include stdio.h
#include algorithm
#include cmath
#include cstring
#include iomanip
using namespace std;
int a[50005],c[50005];
int lowbit(int x)
{return x(-x);
}
int Sum(int n)
{int sum0;while(n0){sumc[n];nn-lowbit(n);}return sum;
}
void Change(int i,int x,int n)
{while(in){c[i]x;iilowbit(i);}
}
int main()
{ int n,m,i,j,k,T,A,B,p0;char st[20];//cinT;scanf(%d,T);while(T--){ //cinn;scanf(%d,n);for(i1;in;i){//cina[i];scanf(%d,a[i]);c[i]0;}for(i1;in;i)for(ji;ji-lowbit(i);j--)c[i]a[j];//coutCase p:endl;printf(Case %d:\n,p); while(scanf(%s,st)){if(st[0]E) break;else { scanf(%d%d,A,B);if(st[0]Q){printf(%d\n,Sum(B)-Sum(A-1)); // coutSum(B)-Sum(A-1)endl;} else if(st[0]A){Change(A,B,n);} else if(st[0]S){B-B;Change(A,B,n);}}}}return 0;
} 转载于:https://www.cnblogs.com/wangyumin/p/5323493.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915638.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!