----优先队列
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj5409 Fantasy
Y sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。你需要告诉她,最大的幻境值之和。对于100% 的数据,有1 此题做法比较神奇,也很好懂,但是很难搞清楚如何去构原创 2017-11-06 20:55:19 · 297 阅读 · 0 评论 -
51Nod 1052/1053/1115 最大M子段和V1/V2/V3
V1N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的。如果M >= N个数中正数的个数,那么输出所有正数的和。N,M例如:-2 11 -4 13 -5 6 -2,分为2段,11 -4 13一段,6一段,和为26。V2N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数原创 2018-02-21 00:06:37 · 377 阅读 · 0 评论 -
51Nod1349 最大值
题目看这里 各种离线套路题。。。我们考虑对每个元素都先预处理答案让后就可以O(lg n)回答了将元素排序后,对于两个询问i,j∈(s[k],s[k+1]]的答案是一样的,我们考虑计算当i=s[k]时的答案显然,当i=s[1]的时候,答案就是总区间数这时考虑当i->s[2]的时候有哪些区间被从答案中去掉了对于一个点i,令l[i]表示当前询问q下,满足区间[l[i],i]最大值原创 2018-02-15 09:41:21 · 292 阅读 · 0 评论 -
Jzoj4210 我才不是萝莉控呢
小Y:“小R你是萝莉控吗。”小R:“...” 为了避免这个尴尬的话题,小R决定给小Y做一道题。有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-原创 2018-01-18 19:52:40 · 1659 阅读 · 0 评论 -
Bzoj5088 HDU 6000 Wash
题目传送门呃这个不应该是一个简单的二分答案+贪心吗(似乎以前做过但是因为long long 卡了好久)我们考虑只洗衣服的情况,显然就是一个非常愚蠢的二分让后再来单独考虑烘干的情况,和上面一样也是一个二分最后考虑如何将两者的时间合并,显然,我们可以将所有衣服送出机器的时间存下来排序按照贪心原则,让最大值尽可能小,所以用最大的和最小的相加,依次类推。。。复杂度O(L+n lg原创 2017-12-03 22:02:33 · 329 阅读 · 0 评论 -
Jzoj5246 Trip
温馨提示:本文附带bgm 多年之后,worldwideD厌倦竞争,隐居山林。 他的家乡开始发展起了旅游业,在一条很长的主干道上,有N个旅游景点,按顺序编号为1到N。根据游客们网上的评分,第i个景点有一个评估值a[i],为了区分开不同的景点,评估值是两两不同的。 今天有M组游客前来旅游,第i组游客选择遍历景点Li到景点Ri这一段路。他们搜到Li到Ri的所有评估值原创 2017-11-21 22:04:42 · 289 阅读 · 0 评论 -
Jzoj4907 蚯蚓
题意:noip2016d2t2配对堆好题,直接上pbds#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#includeusing namespace std;using namespace __gnu_pbds;__gnu_pbds::priority_queue原创 2017-11-14 21:31:42 · 356 阅读 · 1 评论 -
一些基础算法的模板(持续更新)
更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin原创 2017-10-25 22:05:58 · 3734 阅读 · 0 评论 -
Jzoj5443【NOIP2017提高A组冲刺11.2】字典序
你需要构造一个1~n的排列,使得它满足m个条件,每个条件形如(ai,bi),表示ai必须在bi前面。在此基础上,你需要使它的字典序最小。今天的题目比较和善了,然而排名又下降不少,TAT...第一题就是个一眼题嘛,拓扑排序字典序最小?优先队列啊。。。。#include#include#include#include#include#define N 100010原创 2017-11-02 15:31:41 · 314 阅读 · 0 评论 -
Jzoj5432 三元组
有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件:1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个)2、选择x[i]的三元组个数恰好为X3、选择y[i]的三元组个数恰好为Y4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少问选出的数的和最大是多少贪心的题全部都是差分方法做的。。。无语了全原创 2017-11-08 21:25:19 · 339 阅读 · 0 评论 -
Jzoj4835 量化交易
一眼就可以看出是贪心,问题就是怎么去操作首先一个很显然的思路就是,开一个小根堆,每次对于一个价格x,如果低于堆顶我们就将其丢进去,否则将堆顶y取出,获得x-y的贡献但是这样是有问题的,我们会发现有反例: 1 4 2 3 用这种方法求出的答案是1但是正确答案应该是2所以我们需要增加一种“撤销操作”类似于种花那道题,我们每次将答案加上了x-y时候,我们也将x丢入堆中,而且要丢入两次,为原创 2017-10-30 07:49:06 · 596 阅读 · 0 评论 -
Jzoj4726 种花
相信大家都猜到题意了,简单说一下圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大这道题显然可以用堆,每次将堆顶最大的元素取出并删除两边的元素但是正确性显然有问题,比如10,11,10,1显然答案是20而不是12那么每次,我原创 2017-10-15 21:52:23 · 421 阅读 · 0 评论 -
配对堆模板
配对堆是一种可并堆题意:两种操作,合并两个堆或者查询一个堆的最小值,n≤106n\leq 10^6n≤106Pairing−HeapPairing-HeapPairing−Heap还挺好写的,不过并没有传说中那么快这里没有Decrease−KeyDecrease-KeyDecrease−Key的代码,说一下大概怎么实现额外记录一个FatherFatherFather域,执行Decrease...原创 2018-10-25 20:42:10 · 508 阅读 · 0 评论