摘要:
Blocks 题目描述 给出N个正整数a[1..N],再给出一个正整数k,现在可以进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1。经过一定次数的操作后,问最大能够选出多长的一个连续子序列,使得这个子序列的每个数都不小于 k。 总共给出 阅读全文
摘要:
山海经 题目描述 样例 输入 5 3 5 -6 3 -1 4 1 3 1 5 5 5 输出 1 1 5 3 5 6 5 5 4 题目大意 输入一个区间,求它所有子区间和的最大值。 题解 对于每一个区间 \(L~R\) 的最优解 \(i~j\) ,只有三种可能: 一 全部在左子树中 二 正好跨过中点, 阅读全文
摘要:
线段树 单点修改,单点,区间查询 区间修改,单点,区间查询 单点修改 普通线段树 code #define ls (rt << 1) #define rs (rt << 1 | 1) #define lll long long const int N = 1000001; int n,m; int 阅读全文
摘要:
树状数组 区间查询,单点修改(主要求前缀和吧,改一改可以计数) 单点查询,区间修改(维护差分数组) 区间查询,区间修改(比较麻烦,两个树状数组维护) 区间查询,单点修改(基础) (看图)类似前缀和,(当成前缀和用),但是为了减少单点修改复杂度写成树状的,每点更新时向上找“根”。 查询时找 \(low 阅读全文
摘要:
\(\&\) 都为 \(1\) 才是 \(1\),有 \(0\) 就是 \(0\)。 \(|\) 都为 \(0\) 才是 \(0\),有 \(1\) 就是 \(1\)。 ^ 不同为 \(1\) 相同为 \(0\) 。 \(lowbit\) (x & -x) 可以找到最右端的 \(1\) ,具体过程看 阅读全文
摘要:
HH项链 题目描述 HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。 HH不断地收集新的贝壳,因此他的项链变得越来越长。 有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为 阅读全文
摘要:
背包 01背包 三维基础 \(f[i][j]\)表示前\(i\)个物品放进容量为\(j\)的背包中能获得的最大价值。选物品\(i\)的状态相当于不选\(i\) 的状态\(f[i-1][j-v[i]]\)加上\(i\)的价值\(w[i]\)。 for(int i=1; i<=n; i++) { for 阅读全文
摘要:
选课 题目描述 大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。 每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。 例如,《数据结构》 阅读全文