
贪心算法
brucehb
这个作者很懒,什么都没留下…
展开
-
第十一届蓝桥杯(国赛)——答疑
问题描述有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。老师可以安排答疑的顺序,同学们要依次进入老师办公室答疑。一位同学答疑的过程如下:首先进入办公室,编号为 i的同学需要 si毫秒的时间。然后同学问问题老师解答,编号为 i的同学需要 ai毫秒的时间。答疑完成后,同学很高兴,会在课程群里面发一条消息,需要的时间可以忽略。最后同学收拾东西离开办公室,需要 ei毫秒的时间。一般需要 10秒、20秒或 30秒,即 ei 取值为 10000 ,20000 或 30000。一.原创 2022-02-04 12:39:41 · 269 阅读 · 0 评论 -
51nod - 1402 最大值
一个N长的数组s[](注意这里的数组初始下标设为1,而不是0,即N个元素为s[1],s[2],...,s[N]),满足以下性质:1)每个元素都是非负的整数,且s[1]=0;2)任意两个相邻元素差值的绝对值不大于1,即| s[i]-s[i+1] |<=1;3)对于部分特殊点xi,要求s[xi]<=ti(这样的特殊点一共M个);问在以上约束下s[]中的最大值最大可能是多少?In...原创 2017-04-19 21:34:23 · 286 阅读 · 0 评论 -
51nod - 1364 最大字典序排列
给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。Input第1行:2个数N, K中间用空格分隔(1 <= N <= 100000, 0 <= K <= 10^9)。第2至N...原创 2018-03-09 00:35:35 · 1201 阅读 · 0 评论 -
稳定方块
瓦西亚和皮台亚摆放了m个方块。方块被编号为0到m-1(每个号码出现恰好一次)。现在建立一个座标系OX表示地面,OY的方向是竖直向上的。每一方块的左下角有一个座标而且是整点座标。摆放好的方块一定要是稳定的。稳定的含意是每一个不在地面上的方块在他的下面至少有一个方块与他相接触。可以是共边,也可以是共点的。也就是说如果方块座标为(x,y),要么y=0,或者存在一个方块的座标为(x-1,y-1)或者 (x...原创 2018-06-06 23:17:56 · 228 阅读 · 1 评论 -
逛街
LYK喜欢逛街。但是LYK时间有限,只有T个单位时间。LYK从1号店出发,从1号店走到第i号店需要花费 ai 个单位的时间,这些店形成了一条直线,因此LYK从i号店到i+1号店花费的时间为 ai+1−ai 。若选择进去逛,则需要需要花费 bi 的时间。对于第i家店,LYK对其有个评估值 ci ,表示自己是否喜欢这家店。LYK想在有限的时间内,逛无限的街,当然这是不可能的。它有个目标,将走进去逛的店...原创 2018-05-27 17:53:32 · 216 阅读 · 0 评论 -
坐标轴上的最大团
坐标轴上有n个点,每个点有一个权值。第i个点的坐标是 xi ,权值是 wi 。现在对这些点建图。对于点对 (i,j) ,如果 |xi−xj|≥wi+wj ,那么就给第i个点和第j个点之间连一条边。问建好的图中最大团有几个点。样例解释:Input 单组测试数据。第一行有一个整数n (1≤n≤200000),表示坐标轴上有n个点。接下来n行,每一行有两个整数xi, wi (0≤xi≤...原创 2018-05-09 00:48:22 · 229 阅读 · 0 评论 -
数据关联
现在我们要关联两张表,A和B。每张表中有一些数据,这些数据被分成好多块。表A中有m个块。第i块有ai条数据。表B中有n个块,第i块有bi条数据。每一次操作可以将一条数据从一个块复杂到另外一个块。最后的目标是对于A中某一条数据和B中某一条数据他们会同时会出现在至少一个块中。问最少的操作次数。样例解释:可以将所有的数据都复制到B中的第二个块中。这样答案就是2+6+3=11。Input 单...原创 2018-02-28 22:29:21 · 2659 阅读 · 0 评论 -
交换机器的最小代价
有N台机器重量各不相等,现在要求把这些机器按照重量排序,重量从左到右依次递增。移动机器只能做交换操作,但交换机器要花费一定的费用,费用的大小就是交换机器重量的和。例如:3 2 1,交换1 3后为递增排序,总的交换代价为4。给出N台机器的重量,求将所有机器变为有序的最小代价。(机器的重量均为正整数)Input第1行:1个数N,表示机器及房间的数量。(2 <= N <= 50000)第2...原创 2018-02-21 01:15:25 · 322 阅读 · 0 评论 -
二染色问题
一个N*N的网格,初始为白色。现在有一个K*K的印章,每次操作:你可以用印章把网格中一个K*K的子矩形染成黑色或白色。如果一个格子被多次染色,那么后一次染色会覆盖掉前一次的。现在,给你N*N的由黑白两色构成的图案board(board[i][j]为第i行第j列格子的颜色,不是白字母‘W’表示,就是黑由字母‘B’表示),问是否能通过若干次操作,将网格从初始状态染成图案board的样子。如果可以输出"原创 2018-02-02 22:28:13 · 1556 阅读 · 0 评论 -
连接小岛
有n个小岛,每一个小岛是直线型的,他们不相互相交,第i个小岛所占的区间是[li, ri],而且, ri < li+1 对于所有的 1 ≤ i ≤ n-1。现在要将相邻的小岛用桥连接起来。现在有一条桥的长度是a,第i个岛和第i+1个岛能够连接的条件是,存在x,y使得 li ≤ x ≤ ri, li+1 ≤ y ≤ ri+1 且 y - x = a成立。现在有m条桥,每条桥原创 2018-01-26 01:15:30 · 688 阅读 · 0 评论 -
吃点心
有N盒点心,这些盒子标号为1,2,...N,你有一次机会选择一些盒子作为你的晚餐,但是每个盒子里点心的数量是未知的,不过有人告诉你一些信息:1)这些盒子里的点心总和是C个;2)对于盒子i,其中的点心个数最少有low_i个,最多有high_i个,即low_i你选择的方式如下,一次挑出N盒中的若干盒,也就是{1,2,...,N}的一个子集,然后拿走你选出的盒子,再打开它们,到此时你才知道你原创 2018-01-31 00:49:31 · 383 阅读 · 0 评论 -
最小化序列
现在有一个长度为n的数组A,另外还有一个整数k。数组下标从1开始。现在你需要把数组的顺序重新排列一下使得下面这个的式子的值尽可能小。 ∑n−ki=1|A[i]−A[i+k]| 特别的,你也可以不对数组进行重新排列。Input单组测试数据。第一行包含两个整数n,k (2≤n≤3*10^5, 1≤k≤min(5000,n-1))。第二行包含n个整数 A[1],A[2],原创 2017-11-17 02:45:21 · 834 阅读 · 0 评论 -
51nod - 1288 汽油补给
有(N+1)个城市,0是起点N是终点,开车从0 -> 1 - > 2...... -> N,车每走1个单位距离消耗1个单位的汽油,油箱的容量是T。给出每个城市到下一个城市的距离D,以及当地的油价P,求走完整个旅途最少的花费。如果无法从起点到达终点输出-1。例如D = {10, 9, 8}, P = {2, 1, 3},T = 15,最小花费为41,在0加上10个单位的汽油,在...原创 2017-11-30 02:42:02 · 254 阅读 · 0 评论 -
括号序列的最小代价
这里有一个关于合法的括号序列的问题。如果插入“+”和“1”到一个括号序列,我们能得到一个正确的数学表达式,我们就认为这个括号序列是合法的。例如,序列"(())()","()"和"(()(()))"是合法的,但是")(", "(()"和"(()))("是不合法的。我们这有一种仅由“(”,“)”和“?”组成的括号序列,你必须将“?”替换成括号,从而得到一个合法的括号序列。对于每个“?”,将原创 2017-11-06 22:28:16 · 922 阅读 · 0 评论