随笔分类 - 数据结构 CDQ分治
摘要:【题意】给定n台在时间di可以买入的机器,pi买入,可在任意时间ri卖出,买入和卖出之间的持有时间每天产生gi金钱,任意时间至多持有一台机器。给定初始钱数c和总天数T,求最大收益。n<=10^5。 【算法】动态规划+斜率优化(CDQ分治) 【题解】机器按di排序,添加一台时间为T+1的机器,令f[i
阅读全文
摘要:【题意】初始资金s,有两种金券A和B,第i天,买入时将投入的资金购买比例为rate[i]的两种股票,卖出时将持有的一定比例的两种股票卖出,第i天股票价格为A[i],B[i],求最大获利。n<=100000。 【算法】动态规划+斜率优化(CDQ分治) 【题解】为了最大获利,每次交易一定是全部买进和全部
阅读全文
摘要:【题意】给定1~n的排列,m次操作每次删除一个数,求每次操作前的逆序对数。n<=10^5,m<=50000。 【算法】CDQ分治+树状数组 【题解】先树状数组求逆序对,然后统计每次删除的逆序对数。 每个数字及其坐标构成一个二维坐标,逆序对就是两个相对位置在左上右下的点,那么删除一个点会减少的逆序对就
阅读全文
摘要:【题意】三维偏序,给定n个点(x,y,z),求每个点和(0,0,0)组成空间中的点数,有重点。1<=x,y,z<=2*10^5,1<=n<=10^5。 【算法】CDQ分治+树状数组 【题解】CDQ算法知识 三维偏序,一维排序扫描线(x),一维树状数组前缀和(y),一维CDQ分治(z作为时间维)。 1
阅读全文
摘要:【题意】n*n的矩阵,初始值为0(题面有误),m次操作,增加一个格子的权值,或查询子矩阵和。n<=2*10^6。(m应该较题面所述偏大)。 【算法】CDQ分治(算法知识见数据结构) 【题解】三维偏序,一维排序扫描线(x坐标),一维树状数组前缀和(y坐标),一维CDQ分治(操作时间)。 每个矩阵查询差
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文