题目描述 给定平面 x-O-yx−O−y 上 nn 个开线段组成的集合 II ,和一个正整数 kk .试设计一个算法,从开线段集合 II 中选取出开线段集合 S\subseteq IS⊆I ,使得在 xx 轴上的任何一点 pp ,SS 中与直线 x=px=p 相交的开线段个数不超过 kk ,且\sum\limits_{z\in S}|z|z∈S∑∣z∣ 达到最大.这样的集合 SS 称为开线段集合 II 的最长 kk 可重线段集.\sum\limits_{z\in S}|z|z∈S∑∣z∣ 称…
相当与一个拓扑排序的模板题吧 蒟蒻的辛酸史 题目大意:给你一个有向无环图,让你求出1到n的最长路,如果没有路径,就输出-1 思路:一开始以为是一个很裸的拓扑排序 就不看题目,直接打了一遍拓扑排序 然后就得到了45分的成绩 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<cmath> #define int long long int us…
题目大意:给定一个长度为 N 的序列,求有多少个三元组满足 \(i<j<k,a_i<a_j<a_k\). 题解:这是一类二维偏序问题,与逆序对问题类似. 对于序列中每个点来说,用树状数组统计左边有多少个值比他小,右边有多少个值比他大,最后扫一遍数组计算答案贡献即可. 代码如下 #include <bits/stdc++.h> #define fi first #define se second #define pb push_back #define mp make_p…