随笔分类 - ACM-树状数组
摘要:题意:N个工兵营地,第i个营地有ai个人。三种操作:1.第i个营地增加x个人。2.第i个营地减少x个人。3.查询第i个到第j个营地的总人数。思路:线段树or树状数组代码:(树状数组)int n;int a[50005];int C[50005];void init(){ rep(i,1,n){...
阅读全文
摘要:题意:N个点形成一棵树。给出根结点P还有树结构的信息。输出每个点的F[i]。F[i]:以i为根的所有子结点中编号比i小的数的个数。0 G[N];int C[N];int ans[N];stack S;bool vis[N];void Add(int x){ for(int i=x;i0;i-=...
阅读全文
摘要:题意:给你N个数,N个数是0~N-1的一个全排列。要求统计它的所有形式的逆序对的最小值。它的所有形式的意思是,不断将数组开头的第一个数放到数组的最后面。逆序对:iaj思路:树状数组也可以,,看代码代码:const int maxn = 50005;int sum[maxn> 1; build(...
阅读全文
摘要:题意:N个工兵营地。工兵营地里的人数分别为:a1,a2,....aNAdd i,j:第i个工兵营地里增加j人Sub i,j:第i个工兵营地里减少j人Query i,j:查询第i个第j个工兵营地共有多少人思路:线段树、树状数组都可以做,看代码代码:线段树:const int maxn = 50005;...
阅读全文
摘要:题意:n个砖块,第i个砖块的高度是hi。m个query,每个query的格式:L R H (输出[L,R]中有多少个hi小于等于H【即玛里奥能跳过多少块砖】)数据范围:1 b.h;}bool cmp2(node2 a,node2 b){ return a.H>b.H;}void add(int...
阅读全文
摘要:题意:给N个数。a[1]....a[N]。M种操作:S X Y:令a[X]=YQ L R D P:查询a[L]...a[R]中满足第D位上数字为P的数的个数数据范围:1#include #include #include #include #include #include #include #in...
阅读全文
浙公网安备 33010602011771号