2020年5月14日

【好题】线段树+贪心+思维——cf1248F

摘要: 位置的嵌套把我弄晕了。。。总感觉多写了一层 /* 首先要找到一种满足条件的排列方式 给所有段按(左端点,右端点)升序排序,然后分配位置 从左到右扫描位置i,把左端点<i的所有Seg放入优先队列 优先队列每次取出右端点最小的 然后考虑两个段是否可以交换顺序:设段[l,r]被分配的位置是x 那么和他交换 阅读全文

posted @ 2020-05-14 22:47 zsben 阅读(163) 评论(0) 推荐(0) 编辑

链表+思维+模拟——NWERC 2019 Jackdaws And Crows

摘要: 给定一个数组a,将其变成正负相间 操作1:任选一个子集,里面的数-1或+1,代价c操作2:删掉一个数,代价r 重要结论:如果ab符号冲突,bc符号冲突,那么肯定要删两个(删一个不够,自己模拟一下情况)从小到大枚举a[i],表示abs(a[i])小于a[i]的都可以变成自由点 同时非自由点需要删掉的个 阅读全文

posted @ 2020-05-14 16:51 zsben 阅读(352) 评论(0) 推荐(0) 编辑

平衡树性质+思维——NWERC 2019 Balanced Cut

摘要: 找了老半天错误。。 高度为i的平衡树至少要有f(i)=f(i-1)+f(i-2)+1个结点从小到达枚举i,如果i被选中,那么其所有祖先p也必被选中考虑i能否加入:如果i在祖先p的左子树里,p的左子树高度更新,连带更新右子树必须要有的高度 如果i在组先p的右子树里,更新右子树高度,只要右子树高度<=左 阅读全文

posted @ 2020-05-14 13:10 zsben 阅读(247) 评论(0) 推荐(0) 编辑

【好题】思维+数学+二分+单调栈——NWERC 2019 Height Profile

摘要: 可以很简单地发现,如果可以找到这样的两点,那么最优的情况一定是,两个点中至少有一个点在端点上。 对于每一个斜率k,将第i个节点减去k*i,形成新的图。在新的图上斜率大于等于0就是符合条件的。 我们可以枚举右端点。对于同一个右端点,如果点a比点b更靠近右端点并且点a不小于点b,那么点a就不需要考虑了, 阅读全文

posted @ 2020-05-14 09:36 zsben 阅读(194) 评论(0) 推荐(0) 编辑

导航