
树状数组
OriginalRecipe
这个作者很懒,什么都没留下…
展开
-
HDU-5775 Bubble Sort 树状数组
题目:P is a permutation of the integers from 1 to N(index starting from 1). Here is the code of Bubble Sort in C++. for(int i=1;i<=N;++i) for(int j=N,t;j>i;--j) if(P[j-1]>P[j]...原创 2018-07-18 10:57:17 · 173 阅读 · 0 评论 -
HDU-5542 The Battle of Chibi DP+树状数组+离散化
题目链接:HDU-5542主要思路:不难看出来这是一道DP题,但如果用普通的DP则会超时,故需要用树状数组优化.原状态转移方程为dp[i][j]=sum(dp[k][j-1])i,j,k表示这次选第i个数,上次选第j个数a[k]<a[i].用树状数组维护已经选了i个数比上一个选的数值比j小的数的方案数的总和.即sum(i,j).原dp方程for(int i=1; i<=n...原创 2018-07-18 21:12:17 · 225 阅读 · 0 评论 -
HDU-2836 Traversal 树状数组+DP+离散化
题目链接:HDU-2836主要思路:若是用普通的dp,dp开一维,dp[i]表示以i结尾的子序列的方案数.故dp[i]=sum(dp[j])(i-h<=j<=i+h).复杂度为O(N*H).在这时可以用树状数组维护dp数组的前缀和,dp[i]=sum(i+h)-sum(i-h-1).而由于数值太大,故用离散化.#include<cstdio>#inc...原创 2018-07-19 13:23:07 · 213 阅读 · 0 评论 -
「NOI2014」购票 数据结构+斜率优化
「NOI2014」购票 Part 0测试点1,2,3。枚举,复杂度O(n2)O(n^2)O(n2)Part 1对于t=0的测试点。我们看一看这个状态转移式子。记dp[i]为i这个点到达SZ市所需的最小资金dis[i]为SZ市到这个点i的路径长度。我们要求t这个点的答案,那么就有。(s为t到根路径上的点)dp[t]=min(dp[s]+p[t]∗(dis[t]−dis[s])+q[t...原创 2019-04-15 22:06:38 · 324 阅读 · 0 评论