摘要: 题解 分行考虑,每一行都被火山截断为若干个区间(由于$n$数据范围较大,只考虑有火山的行)。如果上一行不存在与当前区间有交集的区间,则将其删去,判断最后是否留有可行区间即可。 具体实现:将每行的区间放入一个集合之中,对于一个区间$[l,r]\(,二分上一行中第一个左端点\)\ge l$的区间和最后一 阅读全文
posted @ 2021-09-24 15:42 violet_holmes 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题解 对于一对方向相反的牛,它们之间的顺序是无关紧要的,因为一定有一头会看到对方被挤奶,所以只需要考虑方向相同的牛。对于向左的牛,从右到左挤奶,反之亦然。 代码 #include<bits/stdc++.h> #define int long long using namespace std; co 阅读全文
posted @ 2021-09-24 15:41 violet_holmes 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题解 易得,两条路径一定分别通过$(1,2)\(到\)(n-1,m)\(和\)(2,1)\(到\)(n,m-1)\(的路径。因此可以算出\)(1,2)→(n-1,m)\(和\)(2,1)→(n,m-1)\(的方案数,将它们相乘,但这样会多余计算在中间有交点的情况。因为\)(1,2)→(n,m-1)\ 阅读全文
posted @ 2021-09-24 15:00 violet_holmes 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题解 因为一棵树的权值被根节点各子节点的子树平分,因此可以求出叶子节点$i$的权值对根节点的贡献,设其为$\frac{1}{va_i}$。也就是说,对于节点$i$,$1$权值的比重是$\frac{1}{va_i \cdot a_i}$,而目标就是将这些叶子节点单位权值的比重统一,并使其最小。因为随着 阅读全文
posted @ 2021-09-24 14:59 violet_holmes 阅读(33) 评论(0) 推荐(0) 编辑