摘要:
CF1359C Mixing Water 题目大意: 热水温度为h,冷水温度为c,不断以热水、冷水、热水、冷水……的顺序加入桶中,桶中的温度为加入过的水的平均值,问多少次操作后使桶中的温度最接近给定的温度t。 思路: 注意题目条件$ c \leq h \leq 10^6$,可以分成三种情况进行讨论。 阅读全文
摘要:
CF402E Strictly Positive Matrix 题目大意: 给出一个矩阵a,满足$a_ \geq 0$且$\sum_n a_ > 0$,问是否存在k使得$ak$为一个严格正矩阵。 若b为严格正矩阵则满足任意的$b_ > 0$。 思路: 题目满足a中元素都是非负的,结合矩阵乘法的性质可 阅读全文
摘要:
题目大意: 见题面 思路: 一道很普通的mcmf,取一个学生的a值或者b值可以用流量来表示,即每个学生有1的流量。题目中我要求输出对与每个学生的被选择情况,我们可以通过遍历学生的正向边或者反向边的流量得出学生的被选择情况。 Code: #include <bits/stdc++.h> using n 阅读全文
摘要:
题目大意: 求逆序对的数量。 思路: 主要有两种求逆序对的方法,这里做一个总结。 第一种是归并排序的解法。考虑一个样例 a[i] mid = 4 a[j] 3 4 7 9 1 5 8 10 当$a[i]>a[j]$时,因为根据分治的思想此时两边各自都是有序的,因此$a[i]$及$a[i]$右边直到$ 阅读全文
摘要:
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 阅读全文