关闭
当前搜索:

[arc080e]Young Maids

题目大意一个长度为偶数的排列p,每次取出相邻两个数并从p中删除,然后将这两个数按顺序加入q的开头(q初始为空)。 问能得到最小字典序的q。做法在堆中保存若干个区间(l,r),以及从中选出最小的和l奇偶性相同的位置u,以及在这个位置之后最小的和r奇偶性相同的位置v。记作(l,r,u,v)。 然后我们每次从堆中取出a[u]最小的(l,r,u,v),并将u、v加至开头,然后把区间分裂成(l,u-1)(...
阅读(197) 评论(0)

回转寿司

题目描述分块你考虑有一堆人,价格为x的进去了出来会变成啥样。 那么肯定是找到这堆人所持价格的最大值y,如果x>y,出来的还是y,否则x会变成某个人手里的,然后出来的是y。 我们考虑分块,每个块维护一个数堆。 如果x要经过一个块,可以丢进数堆,再取出一个最大值。然后还要给这个块打上一个标记。 但是对于零散的不是很好做,即重构块,我们如何快速得到每个位置经过一系列标记后的值? 注意这个问题具有...
阅读(110) 评论(0)

[LibreOJ β Round]ZQC的手办

题目大意区间对一个数取max。 区间求最小的x个比k小的数。线段树第一个操作很好搞。 第二个操作有个很显然的常数大做法。 实际上可以用堆把这个区间的笛卡尔树按优先级广搜。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; con...
阅读(203) 评论(0)

图的半径

题目大意给定无向图,求图的半径。 图的半径定义:找到图上一点(可以在边上),使得其余所有点到该点最短路最大的那个最小,这个最小的最大最短路就是图的半径。该点称为中心。观察先做floyd跑双源最短路 我们枚举一条边j连向k,长度为t,认为中心在这条边上。 那么答案min(maxni=1(min(dis[j][i]+x,dis[k][i]+t−x))))min(max_{i=1}^n(min(di...
阅读(190) 评论(0)

灵知的太阳信仰

题目大意每个位置有两个值ai和bi。 给一个序列分成若干连续段,使得每个段内a值互不相同,代价是b的最大值。求最小代价。DP我们思考设fi表示给1~i分段的最小代价。 我们可以处理出ci表示一个最小的k使得[k,i]没有重复a。 这个随便用个桶就实现了吧。。 那么Fi=mini−1j=ci−1(Fj+max(j+1,i))Fi=min_{j=ci-1}^{i-1}(Fj+max(j+1,i)...
阅读(254) 评论(0)

量化交易

题目大意对于一个序列,每个位置可以填左括号/右括号或不填。 必须使括号序列合法,同时价值为右括号处权值和-左括号处权值和贪心假如我们已经得到了前i-1的填写方案,bz[i]=1表示填了左括号,-1表示填了右括号,0表示没填。 我们用一个数据结构例如堆来保存前i-1里bz值为-1和0的。 现在我们考虑在i填右括号,我们找到堆中最小值j。 然后如果a[i]-j>=0则我们就配对,然后bz[i]–...
阅读(180) 评论(0)

ksum

题目描述瞎搞经典题了#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typedef long long ll; const int maxn=100000+10; int left[maxn],right[maxn]; ll heap[maxn],sum[max...
阅读(144) 评论(0)

排队

题目描述做法我们先处理出fix表示在全空情况下不断进人,i这个房间被第几个人最终停留。 用一个堆保留空房间当前fix的最小值,每次进一个人就是选择堆中最小值的房间。 拿走人的话观察一下就是从这个房间往上有人房间的数量-1,这个可以倍增来求,因为这个房间到根路径上有人和没人一定是分离开的。 分析一下势能这样做是n log n的。#include #include<algorith...
阅读(188) 评论(0)

成绩调研

题目大意求有多少个区间满足权值为i的数量在[li,ri]内。扫一扫我们枚举区间右端点,左端点的可取范围是一段区间。 尝试用两个堆维护左端点的最大值和最小值。 对于第i种权值,我们可以通过指针跳跳跳获得在位置i时左端点的左界和右界,所以一个堆保存所有权值的左界另一个保存右界。 注意l=0以及r=0的情况。#include #include #include<...
阅读(133) 评论(0)

[bzoj3252]攻略

题目描述众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏。 今天他得到了一款新游戏《XX半岛》,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景。所有场景和选择支构成树状结构:开始游戏时在根节点(共通线),叶子节点为结局。每个场景有一个价值,现在桂马开启攻略之神模式,同时攻略k次该游戏,问他观赏到的场景的价值和最大是多少(同一场景观看多次是不能重复...
阅读(237) 评论(0)

矩阵

题目大意求出一个n*m的矩阵中长至少为x宽至少为y的矩形价值的第K小。 每个元素都是非负整数,一个矩形的价值定义为所有元素和,相同价值的不同矩形在计算答案时算多个。经典套路观察一个以(x1,y1)为左上角的矩形。 假如右下角为(x2,y2),这个矩形一定比(x1,y1,x2+1,y2)和(x1,y1,x2,y2+1)都小。 所以先把所有位置为左上角的长为x宽为y的矩形扔进堆里。 每次取出一个...
阅读(164) 评论(0)

[NOIP2015]推销员

题目大意现有长度为N的两个数组a和s 有N个询问,第i个询问你需要找出一个i使得s[i]*2+a[i]+1..i-1中a数组前i-1大的值之和最大。整体二分注意到每个询问找出的那个最优的i是满足单调性的 因此可以对所有询问整体二分 用solve(l1,r1,l2,r2)表示当前处理第l1~r1个询问,他们最优的i范围在l2~r2。 令mid1=(l1+r1)/2,我们在l2~r2则找,看看那...
阅读(1232) 评论(2)

[bzoj4326][NOIP2015]运输计划

题目大意树上有许多条路径,现在你可以将一条边的权值设为0,令所有路径的最大值最小。最长路径瓶颈我们注意到,设为0的边如果不在最长路径上,就不会减小答案。 因此我们可以找出最长路径,把原树转化为一条链+许多树的模型。 预处理出每个点i的from[i]表示由链上哪个点延伸的。 接下来我们可以枚举将链上哪条边变为0,则经过这条边的最长路径一定是最长链,我们只需维护出不经过这条边的最长路径。这个显然可...
阅读(931) 评论(0)
    个人资料
    • 访问:297135次
    • 积分:11195
    • 等级:
    • 排名:第1574名
    • 原创:805篇
    • 转载:4篇
    • 译文:0篇
    • 评论:197条
    最新评论
    文章分类