摘要:
CF1462D Add to Neighbour and Remove 题目大意: 给定长度为n的序列a,每次操作可以选择相邻的数合并为一个数,求使得序列中所有元素相同的最少操作数量。 思路: 不难想到我们可以通过前缀和来加速合并的过程。 答案一定有解,即下界为0,上界为序列长度n-1。 那么我们可 阅读全文
摘要:
CF1461B Find the Spruce 题目大意: 求指定类型图案的数量。 思路: 一个很巧妙的递推式。 注意从下往上进行递推。 Code: #include <bits/stdc++.h> using namespace std; const int N = 510; int n, m; 阅读全文
摘要:
CF1408C Discrete Acceleration 题目大意: 数轴的原点和位置为 \(l\) 的点上各有一个初始速度为1m/s的小车,在原点的小车向右开,在 \(l\) 位置的小车向左开.在位置0到 \(l\) 间有n个旗子,第i个的位置为$a_i$,当两辆小车中任意一辆经过一个旗子,它的 阅读全文
摘要:
CF995C Leaving the Bar 题目大意: 有一堆向量,你可以将一些取反,使后所有向量之和的长度小于$1.5\times 10^6$,保证有解。 思路: 一个明显的贪心策略就是比较一下对于每一个向量取反与不取反对向量和的贡献哪个更小。 n为1e5却给了2s,题目保证有解暗示你可以乱搞。 阅读全文
摘要:
题目大意: n天。第i天上午会进货$A_i$件商品,中午的时候会有顾客需要购买$B_i$件商品,可以选择满足顾客的要求,或是无视掉他。 如果要满足顾客的需求,就必须要有足够的库存。问最多能够满足多少个顾客的需求。 思路: 典型的带反悔的贪心。 策略是能满足顾客的需求则满足他,但这样的的局部最优不一定 阅读全文
摘要:
P4310 绝世好题 题目大意: 给出一个数列a,求a的子序列b的最长长度,满足$b_i & b_ \neq 0$。 思路: 很容易联想到$O(n^2)$求最长上升子序列。 for i in range(1, n + 1): dp[i] = 1 for j in range(1, i): if (a 阅读全文