摘要: 【题意】给出一个n个数的序列,要求取出互补相邻的m个数,使得它们的和最大。 【算法】贪心,堆 【题解】 每次取出最大的a,并且把a[i]设为a[pre[i]]+a[nxt[i]]-a[i] 这种做法类似于给贪心一个反悔的机会,这个反悔的机会实质上是扩大你选择数字的影响范围,一旦扩大就一定不会反悔,因 阅读全文
posted @ 2017-12-13 22:03 Driver_Lao 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 洛谷3377 可以轻松改成斜堆等可并堆 1 #include<cstdio> 2 #include<algorithm> 3 #define ls(x) (a[x].ls) 4 #define rs(x) (a[x].rs) 5 using namespace std; 6 int n,m,tot, 阅读全文
posted @ 2017-12-13 19:45 Driver_Lao 阅读(147) 评论(0) 推荐(0) 编辑