随笔分类 - Contest Hunter
摘要:第一问置换群裸题。第二问单独考虑某个循环,任意交换两个元素,稍微画一下就会发现,把该循环拆成了2个,剩下所需的交换次数减少了1,也就是说,第一步我们任意交换,都能够保证交换次数最少。于是一个循环的答案就是n*(n-1)/2,把所有的加起来即可。进而我们发现,在剩下的步骤里面,我们只需在拆出来的两个循...
阅读全文
摘要:10分算法:对于城市网络为一条单向链的数据, 20分算法:对于n 2 #include 3 #include 4 #include 5 using namespace std; 6 #define M 500001 7 #define N 100001 8 struct Node 9 {10 ...
阅读全文
摘要://上图绿色扫描线右侧少画了一条扫描线。很多区间把数轴分成了很多段,看哪个点的(区间覆盖数*该点权值)最大。显然在某个区间的右端点的答案是最优的。排序后 用扫描线从左到右扫描,维护每个点的覆盖数,就是遇到左端点时cnt++,右端点时更新ans、cnt--。若某个点既有左端点,又有右端点,就把左端点放...
阅读全文
摘要:拓扑排序,要让字典序最小,所以把栈改成堆。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100001 6 priority_queue,greater >Q; 7 int n,m,x,y; 8 int v[N...
阅读全文

浙公网安备 33010602011771号
