随笔分类 -  数据结构 - 二叉堆

摘要:题目大意:给定两个有 N 个数字的序列,从这两个序列中任取一个数相加,共有 $N^2$ 个和,求这些和中最小的 N 个。 题解:由于数据量是 10W,必须减少每次选取的决策集合中元素的个数。可以发现,将两个序列的元素排好序之后,固定 i 时,对于任意的 j define fi first defin 阅读全文
posted @ 2018-11-28 11:32 shellpicker 阅读(286) 评论(0) 推荐(0)
摘要:题目大意:给定 N 个位置,每个位置有一个答案贡献值,在一个位置加了一次该位置的答案贡献值之后,该值会减掉一部分,从一个位置移动到另一个位置需要花费一定的时间,问:给定 M 单位的时间,如何移动使得答案贡献值最大。(初始在1位置) 题解: 引理:若想使答案贡献值最大,一定不能走回头路,因为走回头路时 阅读全文
posted @ 2018-11-24 16:24 shellpicker 阅读(180) 评论(0) 推荐(0)
摘要:代码如下 cpp include using namespace std; const int maxn=1e6+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar();if(ch==' ')f= 1;}while(!isdigit(c 阅读全文
posted @ 2018-10-29 23:12 shellpicker 阅读(156) 评论(0) 推荐(0)