16.10.7 A:4815. 【NOIP2016提高A组五校联考4】ksum
这道题目仔细想想就可以发现是一个堆,我们先做1~n的前缀和,然后我们把(1,n)放入堆,[a+1,b]和[a,b-1]才有可能成为下次取出的对
象,那么我就将[a+1,b]和[a,b-1]加进堆,这样重复 k 次即可,另外,如果每次都[a+1,b]和[a,b-1]加入堆,会得到重复的答案,那么,我们可以固定左端点。反正c++优先队列爱怎么浪怎么堆怎么浪,就酱紫。#include<cstdio>
#
原创
2016-10-12 20:37:23 ·
317 阅读 ·
0 评论