随笔分类 - 贪心
摘要:"嘟嘟嘟" 我就纳闷儿这题为啥是紫题,原来是因为卡内存…… 这题前面讲了半天的随机数怎么生成,我还以为要在这搞什么事情。然而你只要按题目$O(n m + q)$生成一个矩阵就没了。 关于选路径,因为最后要排序,所以肯定是贪心的从小的开始选,能选就选,选到$n + m 1$为止。 选的时候判断这个数能
阅读全文
摘要:"嘟嘟嘟" 这题算是NOI系列罕见的水题吧。 按位考虑,观察到经过每一个门无非就是4种情况:0变0,0变1,1变0,1变1。更概括的来说,就是两种情况:这一位变成1,和这一位变成0。 所以从高位到低位贪心即可。 变成1,如果满足$m$的范围,就选;变成0,如果1和0都变成了0,那么我们自然选0,这样
阅读全文
摘要:"嘟嘟嘟" 这题搞了将近一个下午,总算给搞懂了。 真心觉得NOI2017比NOI2018难多了(貌似有目共睹?)。 这题拿到后就觉得是一个贪心,但是当时就想着正着推,每一次找价值最大的卖,然后如果到了一个截止日期就把一些卖出去“收回来”换成一些价值小的蔬菜,好挣他们的第一笔前$s_i$,总的来说就是
阅读全文
摘要:"嘟嘟嘟" 首先瞎想可以知道,一定选相邻两个数之和最大的。这样后面的将军选和前面的前面的一样的勋章就行了。 不过如果$n$是奇数的话就会gg。然后考虑每一个勋章最多有$\frac{n}{2}$个人用,所以$\lceil \frac{\sum a[i]}{\frac{n}{2}} \rceil$个勋章
阅读全文
摘要:嘟嘟嘟 自底向上贪心,优先删除每一个儿子中代价最小的一个。 正确性我也不是十分明白,画图的时候发现贪心删边都对,于是试一试竟然AC了…… 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<algorithm> 5
阅读全文
摘要:嘟嘟嘟 这竟然是一道贪心题,然而我在不看题解之前一直以为是dp。 首先最优的配对一定是相邻两个建筑物配对,所以我们求出差分数组,就变成了在n - 1个数中选出不相邻的k个数,使这k个数的和最小。 贪心是在回事呢?首先把所有点放在一个小根堆中,然后如果取出一个点ai,就把ai-1 + ai+1 - a
阅读全文
摘要:嘟嘟嘟 这其实是一道贪心题,而不是dp。 首先我们贪心的取有优惠券中价值最小的,并把这些东西都放在优先队列里,然后看[k + 1, n]中,有些东西使用了优惠券减的价钱是否比[1, k]中用了优惠券的物品更划算,是的话就更新。 1 #include<cstdio> 2 #include<iostre
阅读全文
摘要:题面好难找:嘟嘟嘟 贪心 + dp。 首先要按bi的降序排序,让每一次减少大的数尽量靠前。为啥咧?于是我们就需要证明:令sum = a1 - (1 - 1) * b1 + a2 - (2 - 1) * b2 + a3 - (3 - 1) * b3 + ……+ an - (n - 1) * bn,整理
阅读全文
摘要:嘟嘟嘟 水贪心。 当经过一个加油站的时候,记下这个加油站能加的油,然后没油的时候从经过的加油站中选择加油最多的加。 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<algorithm> 5 #include<c
阅读全文
摘要:嘟嘟嘟 这道题很多题解说是二分图染色+模拟,然而其实一个贪心就够了。 如果s1或s2当前栈顶的元素刚好是排好序后的第k个数,那么自然要弹出栈;否则贪心的放入s1栈,同时要判断合法性;如果不行,再看看能否放入s2;如果还不行就输出0。 判断能否放入s1就是看看这个数之后如果有超过两个比s2栈顶元素还大
阅读全文
摘要:嘟嘟嘟 太水了,大佬们就绕道吧…… 就是m, b数组分别排个序,然后更改对应位置的m[i]和b[i],就行了。 因为如果m[i]不改为b[i]而是b[i + 1]的话,那么必定要将m[j] (j > i)改为b[i],而这一定比m[i]改为b[i]更劣。 1 #include<cstdio> 2 #
阅读全文
摘要:嘟嘟嘟 这道题就是田忌赛马吧,首先排个序,然后将最强的和最强的比较,如果a > b,就当然打,若果打不过,就让a中最弱的去送死,然而如果这个最弱的能把对方最弱的打过,就不能让他去送死,因此这里要判断一下。 用四个指针代表a中当前最弱的和最强的以及b中最弱的和最强的,然后分情况移动指针就行。 至于最坏
阅读全文
摘要:嘟嘟嘟 首先我们按自毁时间排序。然后这样从1到n遍历,尝试修复当前第 i 个建筑:如果当前修复建筑所用的时间加上修复第 i 号建筑的时间在自毁前能完成,我们当然要修复它;如果不能完成,那么我们当然要从当前选的ans个建筑以及第i个建筑中修复时间最长的那个把他扔掉,这么做是为了节省时间,好有更大的机会
阅读全文
摘要:嘟嘟嘟 这题首先直接bfs可定过不了,因此可以先贪心缩小两个点的距离,直到达到某一个较小的范围(我用的是30),再bfs暴力求解。 首先我们求出这两个点的相对距离x, y,这样就相当于从(x, y) 走到(0, 0)。然后贪心时,x, y哪一个大,就-=2,另一个--。注意的是要一直保持x, y都是
阅读全文
摘要:题目描述:给出一个长度为n 的序列A1,A2,...,An,求最大连续和。换句话说,要求找到1<=i<=j<=n,使得Ai+Ai+1+...+Aj 尽量大。 输入格式:第一行输入n(1<=n<=50000)。接下来1 行输入序列的n 个元素,第i+1 行为Ai(|Ai|<=10000)。 输出格式:
阅读全文
摘要:【题目描述】现在已知N 件商品,和搬运它们其中每一件的费用。现在搬家公司老板Mr.sb 决定让我们每次任意选取2 件商品。然后这2 件商品只算一件商品的费用。但是这个商品的搬运费用是将选出的2 个商品的费用之和除以k 的运算结果。如此反复。直到只收一件商品的钱。这个就是商店要付的费用。掌柜的想尽可能
阅读全文
摘要:【题目描述】 一个整数区间[A,B]请编程完成以下任务:1.从文件中读取区间的个数及其它们的描述;2.找到满足下述条件的所含元素个数最少的集合中元素的个数,对于每一个区间,都至少有两个不同的整数属于该集合。 【输入】首行包括区间的数目n,1<=n<=10000,接下来的n 行,每行包括两个整数a,b
阅读全文
摘要:【题目描述】阿月正在女朋友宁宁的监督下完成自己的增肥计划。为了增肥,阿月希望吃到更多的脂肪。然而也不能只吃高脂肪食品,那样的话就会导致缺少其他营养。阿月通过研究发现:真正的营养膳食规定某类食品不宜一次性吃超过若干份。比如就一顿饭来说,肉类不宜吃超过1 份,鱼类不宜吃超过1 份,蛋类不宜吃超过1 份,
阅读全文
摘要:题目描述 某工厂生产一批棍状零件,每个零件都有一定的长度(Li)和重量(Wi)。现在为了加工需要,要将它们分成若干组,使每一组的零件都能排成一个长度和重量都不下降(若 i<j,则 Li<=Lj,Wi<=Wj)的序列。请问至少要分成几组? 输入 第一行为一个整数 N(N<=1000),表示零件的个数,
阅读全文
摘要:题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从 100 美元开始,最后能获得最高可能的价值。 输入 第一行是一个自然数 N,1≤N≤100,表示戴维学习汇率的天数。 接下来的 N 行中每行是一个自然数 A,1≤A≤1000。第 i+1 行的
阅读全文

浙公网安备 33010602011771号