![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
【NOIP2017提高A组集训10.28】三元组
Description有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件: 1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个) 2、选择x[i]的三元组个数恰好为X 3、选择y[i]的三元组个数恰好为Y 4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少 问选出的数的和最大是多少Solution在X=0的时候原创 2017-10-31 08:09:00 · 734 阅读 · 0 评论 -
【51Nod 1201】 整数划分
Description将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2,4} {1,2,3},共4种。由于数据较大,输出Mod 10^9 + 7的结果即可。Solution这是一道非常神奇的DP题,用背包直接做会超时。 不过这个DP方程式其实是我推二维背包的时候不小心打错的时候推出来的。 我们设f[i][j]f[i][j]表示用i个数推出j的方案数。原创 2016-12-20 17:09:12 · 1007 阅读 · 0 评论 -
【NOIP2017提高组模拟12.18】B
Description在两个n*m的网格上染色,每个网格中被染色的格子必须是一个四联通块(没有任何格子被染色也可以),四联通块是指所有染了色的格子可以通过网格的边联通,现在给出哪些格子在两个网格上都被染色了,保证网格的最外围一层不会在两个网格中同时被染色,即所有处于第x行第y列满足x=1或x=n或y=1或y=m的格子不会被在两个网格中同时被染色,请求出任意一种染色的方案,如果无解,请输出-1。Sol原创 2016-12-20 15:27:25 · 869 阅读 · 0 评论 -
【JZOJ 4932】B
Description现在你有N个数,分别为A1,A2,…,AN,现在有M组询问需要你回答。每个询问将会给你一个L和R(L<=R),保证Max{Ai}-Min{Ai}<=R-L,你需要找出并输出最小的K(1<=K<=N,不存在输出-1)满足以下两个条件: ①能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的和在区间[L,R]内。 ②能够在原来的N个数中选出不重复(下标不重复)的原创 2016-12-24 16:45:56 · 880 阅读 · 0 评论 -
【51 Nod1378】夹克老爷的愤怒
Description夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织起来暴力抗租。 夹克老爷很愤怒,他决定派家丁常驻村中进行镇压。 诺德县 有N个村庄,编号0 至 N-1,这些村庄之间用N - 1条道路连接起来。 家丁都是经过系统训练的暴力机器,每名家丁可以被派驻在一个村庄,并镇压当前村庄以及距离该村庄不超过K段道路的村庄。 夹克老爷一贯奉行最小成本最大利润的原则,请原创 2016-12-16 22:46:54 · 656 阅读 · 0 评论 -
【51Nod 1241】特殊的排序
Solution一个数组的元素为1至N的整数,现在要对这个数组进行排序,在排序时只能将元素放在数组的头部或尾部,问至少需要移动多少个数字,才能完成整个排序过程? 例如: 2 5 3 4 1 将1移到头部 => 1 2 5 3 4 将5移到尾部 => 1 2 3 4 5 这样就排好了,移动了2个元素。给出一个1-N的排列,输出完成排序所需的最少移动次数。Description看到这题就一脸懵原创 2016-10-20 19:00:47 · 546 阅读 · 0 评论 -
【NOIP2016提高A组集训第12场11.10】图的半径
Description mhy12345学习了树的直径,于是开始研究图的半径,具体来说,我们需要在图中选定一个地方作为中心,其中这个中心有可能在路径上。 而这个中心的选址需要能够使得所有节点达到这个中心的最短路里面最大值最小(也就是说离中心最远的结点距离尽可能小),求出这个最大值的最小值,作为图的半径。Solution看到这题,一开始不是怎么会做,但是看到n≤200,就想开始打暴力。 暴力打着原创 2016-11-10 21:42:19 · 648 阅读 · 0 评论 -
【51Nod 1110 】距离之和最小 V3
DescriptionX轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。该点到其他点的带权距离 = 实际距离 * 权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。Solution看到这个n个点到一个点的“距离和最小”,就要想到中位数。 但是它带权,那么怎么办? 其实一个坐标为x,带了个权w,就相当于有w个x,因为如果最优位置在y处,前者的原创 2016-10-30 16:55:09 · 753 阅读 · 0 评论 -
【NOIP2016提高A组集训第10场11.8】时空传送
Description经过旷久的战争,ZMiG和707逐渐培养出了深厚的感♂情。他们逃到了另一块大陆上,决定远离世间的纷争,幸福地生活在一起。钟情707的neither_nor决心要把他们拆散,他要动用手中最大杀器之一——超时空传送仪来分开ZMiG和707。ZMiG和707所在的大陆可以被描述成N个点M条边的有向无环图。707和ZMiG自带魔法防御,neither_nor只可以用超时空传送仪把707原创 2016-11-08 22:46:53 · 629 阅读 · 0 评论 -
JZOJ 4935【NOIP2017GDKOI模拟1.12】b
DescriptionSolution这就是一道构造题。 原本有个很显然的算法,就是把n分解质因数,然后每个儿子放质因子个。 但是当这些质因数很大的时候,这个就不行了。 所以有一种构造法。 当它是2的倍数的时候,就放一个2的儿子,否则就减1。Code#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>原创 2017-01-12 18:42:59 · 470 阅读 · 0 评论 -
【JSOI2014】歌剧表演
DescriptionSolution本来是一道很简单的题目,没有仔细去想。 如果可以把一个人给认出来,那么就是结合了前面好多次,最后剩下他一个,就把他认出来了。 如果当前表演的是这一坨人,那么考虑给他们染色,记录num表示上一次染得最大的颜色。 染得这一坨人中,在上一轮染色之后,相同颜色的还是一个颜色(说明还不能分辨这两个人),不同颜色的不断的++num,把两个颜色重新区分(因为这一坨人可以原创 2017-01-18 07:31:24 · 898 阅读 · 0 评论 -
【NOIP2014八校联考第4场第2试10.20】乐曲创作
Description小可可是音乐学院的一名学生,他需要经常创作乐曲完成老师布置的作业。 可是,小可可是一个懒惰的学生。所以,每次完成作业时,他不会重新创作一首新的乐曲,而是去修改上一次创作过的乐曲作为作业交给老师。小可可的乐曲由N个音调不同的音符组成,分别记为音符1…N。因此,他创作的乐曲是由1…N的一个排列构成,例如N=5时,他创作的乐曲可能为:2,1,3,5,4。但是,小可可每一次会按照一定原创 2017-01-18 21:05:27 · 1256 阅读 · 0 评论 -
【JZOJ5317】【清华集训模拟】func(辗转相除法、找规律)
DescriptionSolution这是一个可以找规律的题目,但是性质也是比较的好推。 我们可以观察相邻的两项i,i+1,f(i)、f(i+1)的值分别是对应着x、y,然后f(2*i)=x,f(2*i+1)=x+y,f(2*i+2)=y。 然后我们可以发现相邻的两个每次都*2,他们的值也是较小的加上较大的。 那么我们可以倒着推回来,每次值是较大的减较小的,然后判断是左边的较小还是右边的较小,原创 2017-08-23 22:48:00 · 481 阅读 · 0 评论 -
【NOIP模拟】Competing Souls
Description某日,竞赛班的学生来到了一家糖果店。 店里卖着M袋糖果,第i袋糖果里装有i颗糖,价格为i¥。 有N个学生对这些糖果产生了兴趣,于是迅速站成一排,且将他们编号为1到N。其中第i个学生带着a[i]¥。每一轮,他们按顺序买糖果(每一轮每个人只会买一袋)。由于体内的竞争之魂与超乎常人的不服输精神,当前学生买的这袋糖果一定会比上一个人多(当然,第一次可以随原创 2017-08-09 10:22:39 · 608 阅读 · 0 评论 -
JZOJ5238【GDOI模拟】的士碰撞
Descriptionn辆车在一条数轴上,车的编号为1到n。编号为i的车坐标为a[i],初始方向为dir[i](左或右),初始位置两两不同。每辆车每个时刻行走距离为1。两辆车相碰时,会调转方向,继续行走,掉头不消耗时间。现在车子开始朝其方向行驶,同一个坐标允许有多辆车。现在有q个询问,给出 t,i,询问过了t时刻后,编号为i的车的坐标的绝对值。Solution首先我们可以知道,相对顺序是不会变的,就原创 2017-08-09 10:08:23 · 386 阅读 · 0 评论 -
JZOJ3773【NOI模拟】小 P 的烦恼(拓扑排序,贪心,找桥)
Description小 P 最近遇上了大麻烦,他的高等代数挂科了。于是他只好找高代老师求情。善良的高代老师答应不挂他,但是要求小 P 帮助他一起解决一个难题。问题是这样的,高代老师近期要组织班上同学一起去漂流,漂流可以看做是在一张 n 个点 m 条边的有向无环图上进行的,点编号从 0 到 n-1 ,表示景点; 边是连接各景点的一定长度的河道。同时,定义编号为 s 是起点而 t 是终点。我们不妨把从原创 2017-08-09 09:45:24 · 546 阅读 · 0 评论 -
【GDSOI2017】魔兽争霸 x
DescriptionSolution这道题转换一下模型其实就是有很多个带权向量,然后给你一个矩形,给每个向量加一个系数,使得长宽都不超过矩形且权值和最大。 很容易就可以证明出来只需要两个向量就可以了,如果有第三个有系数的,那么就说明这种情况的时候第三个更优,那么还不如直接用第三个替换掉一个。 那么我们现在知道了只用选两个,那么我们该怎么去做这道题? 首先肯定要n2n^2的去枚举,然后我们知道原创 2017-05-07 10:58:13 · 714 阅读 · 0 评论 -
【NOIP模拟】序列
DescriptionSolution这道题有两个方法。方法1:差分加贪心首先可以求出每个点从a[i]到b[i]的步数c[i]。 然后处理出两两之间的差分d[i]。显然在不调整之前(加4),答案的值是∑max(0,d[i])\sum max(0,d[i]),画一下图就知道了。 那么假设现在对区间[l,r]的每个数加4,那么对于差分的影响,只会影响到l和l-1的差分还有r和r+1之间的差分。 如原创 2016-09-19 20:38:44 · 805 阅读 · 0 评论 -
【NOI2017模拟4.4】保持平衡【优先队列,贪心】
Description博爱路上种起了一棵棵的大树,但是有一些地方的树超过了负荷,有一些地方的树的数量又不够。 我们不妨把博爱路看做一条数轴,数轴有n个点,从1到n编号,第i个位置原来现在有ai棵树,这个位置的需求是bi棵树。ai,bi都是0到10的整数。由于你需要是这个位置的树的数量保持平衡,所以你需要移除或者搬一些树过来。 我们怎么使树的数量平衡呢? 首先,你可以从某个位置i移动一棵树到位置原创 2017-04-07 09:20:47 · 875 阅读 · 0 评论 -
【51 Nod 1326】遥远的旅途
Description一个国家有N个城市,这些城市被标为0,1,2,…N-1。这些城市间连有M条道路,每条道路连接两个不同的城市,且道路都是双向的。一个小鹿喜欢在城市间沿着道路自由的穿梭,初始时小鹿在城市0处,它最终的目的地是城市N-1处。小鹿每在一个城市,它会选择一条道路,并沿着这条路一直走到另一个城市,然后再重复上述过程。每条道路会花费小鹿不同的时间走完,在城市中小鹿不花时间逗留。路程中,小鹿可原创 2017-02-09 16:21:09 · 1053 阅读 · 0 评论 -
【NOIP模拟】打膈膜
DescriptionSolution一看就是一道贪心题。 而且贪心的策略实在,太明显了。 首先,群伤肯定在单伤的前面放完,然后在一个个用重击和轻击。 那么枚举一下用多少次群伤,然后模拟就好了。Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define原创 2016-10-16 00:53:12 · 651 阅读 · 0 评论 -
【NOIP2016提高A组集训第7场11.4】连锁店
DescriptionDpstr开了个饮料连锁店,连锁店共有n家,出售的饮料种类相同。为了促销,Dpstr决定让每家连锁店开展赠送活动。具体来说,在第i家店,顾客可以用ai个饮料瓶兑换到bi瓶饮料和1个纪念币(注意不足ai个饮料瓶则不能兑换)。一家店可以兑换多次,兑换得到的饮料瓶还可以继续用于兑换。 小C买了s瓶饮料,他想知道用这s瓶饮料最多可以兑换到多少个纪念币。Solution这题明显是贪心。原创 2016-11-04 20:45:28 · 1062 阅读 · 0 评论 -
【NOIP模拟】大鱼海棠
Description椿是掌管海棠花的少女,她所在的世界不为人们所知,他们的天空就是人类的海底。生活在那个世界里的他们不是人,也不是鱼,而是其他人,掌管着人间的规律。 按照他们的习俗,在16岁那年,椿变为一条海豚到人间巡礼。在第六天,她被大海中的一张网困住,一个人类男孩因为救她而落入深海死去。为了报恩,她回去后私自一人去了如升楼找到灵婆(死去的好人的灵魂化为一条小鱼安放在那里)。她以自己一般的寿命原创 2016-07-18 09:08:56 · 1032 阅读 · 0 评论 -
【APIO2016】亚瑟王之宫
DescriptionSolution暴力一开始看到这题:暴搜?剪枝?贪心?不知所措,但是想了一想,肯定是要预处理出每个骑士到每个点的最短路的。 然后打完第三题有来做这题,发现r和c很小,那么可以暴力出两个点对,然后分配骑士到两个点对去,使得答案最小。 DP是肯定可以做的。贪心现在搜到了点对i和j,假设所有的骑士都去i,每个骑士的贡献是d1[i],那么如果骑士要该去点j,那么答案就要加上d1[j原创 2016-07-14 08:23:42 · 595 阅读 · 0 评论 -
【NOIP模拟】平均数
Description给出包含一个N个整数的数组A。找出一段长度至少为K的连续序列,最大化它的平均值。 请注意:一段子序列的平均值是子序列中所有数的和除以它的长度。Solution一看到求什么最大最小值什么的就要想到用二分答案。 然后是平均数,要求他要大于某个数,那么我们就把这些数同时减去这个平均数,最后如果满足长度大于m的子串和不小于0就成立。那么我们怎样保证长度大于m我们循环从m到n循环,然原创 2016-06-26 07:53:56 · 1232 阅读 · 0 评论 -
JZOJ4446【HNOI模拟】B
DescriptionSolution∪and,∩or,上and下or。 一看到and和or就要想到数里面01的变幻。 我们发现a=a and b其实就是b在某位为0的情况下把0换到a去,b=a or b其实就是a在某位为1的情况下把1换到b去,其实就是a与b的交换。 那么现在问题就是变成转移0和1,导致最后的平方和最大。 考虑二元组,看看是交换优还是不交换优。 现在假设a>b,如果a需要原创 2016-04-21 18:55:41 · 717 阅读 · 0 评论 -
【GDOI模拟】飞机调度
Description作为一个旅行达人以及航空公司的金卡会员,你每一年的飞行里程可以绕赤道几周了。你发现,航空公司为了提高飞机的使用率,并不是简单的一条航线使用一架飞机来回飞,而是会让同一架飞机连续不停地飞不同的航线,甚至有的时候为了能够完成飞机的调度,航空公司还会增开一些临时航线——在飞机转场的同时顺路捎一些乘客。你研究了一下GDOI著名航空公司GD Airways的常规直飞航线,你想知道,在最佳原创 2016-04-28 19:01:06 · 1330 阅读 · 0 评论 -
【GDOI模拟】染色配对
DescriptionSolution比赛的时候没有时间打这一题了。 回想一下才发现,是我昨天才做过的原题的类型题。 小N研究的NP完全问题jzoj上面叫A…… 其实题意是在一个图中出最多的边,并且他们没有交集。 因为每一个点只会在匹配中最多出现一次,那么我们就要选择这些点都要选哪一些极大团。 我们一开始先让这些点随便选极大团,然后要他们可以选的两个极大团互相两边,表示这个点原创 2016-04-10 00:51:47 · 895 阅读 · 0 评论 -
小N研究的NP完全问题
DescriptionSolution什么NP完全问题…… 这个就是一道水题。 首先我们可以想到建一个图,但是不知所措。 因为每一个点都可以左右选择,那么就是可以把一个奇数状态转移成偶数状态。 那么我们一开始就随便放,然后再一个点连接的相邻的两个点进行连边,表示可以转移状态。 我们会发现很多个联通块,如果联通块里面有奇数个权值为奇数的点,那么就答案只能加一了,很显然。 那么我们怎么找方案原创 2016-04-08 21:58:40 · 1049 阅读 · 0 评论 -
【NOIP2012提高组】国王游戏
Description恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多的奖原创 2016-03-13 01:20:57 · 3461 阅读 · 3 评论 -
【JZOJ4585】Robert 的队
DescriptionSolution一开始以为这题是什么二分,数据结构之类的,结果推不出来。 后来推了大半天,才发现了用平方和和平均数来快速求方差,但是只把O(n3)O(n^3)化为了O(n2)O(n^2)。 没办法水了水,打了一个分段贪心,因为在对拍的时候发现选的数都只有l个。然后就变为O(n)O(n)了。结果,这种贪心是可以证明的,不过博主有点懒,不想打。注意这道题每个数的范围开的有点大,原创 2016-07-08 07:59:55 · 461 阅读 · 0 评论 -
【CF 662B】Graph Coloring
Description现在你有一张无向图包含n个节点m条边。最初,每一条边都是蓝色或者红色。每一次你可以将一个节点连接的所有边变色(从红变蓝,蓝变红)。 找到一种步数最小的方案,使得所有边的颜色相同。Solution一开始看到这题,之前好像做过类似的题目,不过是在序列上的…… 想了半天,啊,每个点最多只会被翻转一次:为什么呢,翻转两次会与不翻转的情况一样,翻转三次会与翻转一次的情况一样,最终翻奇原创 2016-07-20 20:33:16 · 1142 阅读 · 0 评论 -
【CF 578D】LCS again
Description现在有一个长度为n的串S,其中每一个字母都是前m个小写字母 计算有多少个不同的长度为n的T(其中T也是由前m个小写字母组成),并且S与T的LCS为n-1 LCS就是同时存在于S和T的最长子序列Description很眼熟的题目,但是不会做。 题解给了一个不用DP的机智做法。 我们现在采取的策略是,用算重方案数减去重复的方案数。 我们考虑三个条件: 1、取出哪个字符原创 2016-07-20 21:04:33 · 1741 阅读 · 3 评论 -
【51Nod算法马拉松18 A】染色问题
Description一个n(3<=n<=100)个点的完全图,现在给出n,要求将每条边都染上一种颜色k(1<=k<=n),最终使得所有三个点构成的环(C(n,3)个不同的换)上三条边的颜色和在所有颜色中任选三种颜色的组合(C(n,3)种方案)一一对应,由你来给出染色方案。 本题有多组数据Solution看到这题一脸懵逼,看了好久都没看懂。 问了一下懂了的人,然后在第一个点有一个n=5的数据。原创 2016-09-25 09:45:23 · 653 阅读 · 0 评论 -
【NOIP模拟】鼎纹
DescriptionSolution这一题,在三题中,看起来最难做,但是策略出错,先搞了第一题。 把第一题搞了两个小时之后,最后也只有90分。后两题本来很有信心的,然后还爆零,时间不够没有对拍。 这一题,很简单的一个构造题。 鼎纹的第一个1,肯定是有铜模的第一个1来匹配的,那么就直接做,然后再找第一个1,继续匹配……在途中如果不合法,那么就输出NO。 因为鼎纹的吗每个点只会搜到一次,所以时原创 2016-09-08 17:41:31 · 824 阅读 · 0 评论 -
【NOIP模拟】矩阵
Description在麦克雷的面前出现了一个有n*m个格子的矩阵,每个格子用“.”或“#”表示,“.”表示这个格子可以放东西,“#”则表示这个格子不能放东西。现在他拿着一条1*2大小的木棒,好奇的他想知道对于一些子矩阵,有多少种放木棒的方案。Solution这是一道水的不行的题,每次找点对个数除以2就好了。 矩阵前缀和不水?Code#include<iostream>#include<cstd原创 2016-09-22 16:35:42 · 777 阅读 · 0 评论 -
【NOIP模拟】排序
DescriptionSolution这种题简直是,普及组小朋友随便过的题目。 直交换两个数,那么很明显只用排一次序之后两两的比对,如果不同的个数=2那么就输出YES否则就输出NO。Code#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#define fo(i,a,原创 2016-09-15 18:37:57 · 456 阅读 · 0 评论 -
【NOIP提高】钱仓
DescriptionSolution比赛的时候看错题目了,还以为是这个钱可以向两边流,结果,样例怎么不对啊!!!! 原来钱,只能向后流TAT贪心那么直接贪心就好了。 每个钱为0的点,因为是单方向流动的,所以肯定是最近的那个点流过来的。 所以先找出一个合法的初始节点,满足每个零都会被前面的点填满。 维护每一个非零的点的左边一个非零的点,其实每次暴力枚举就好了。 然后把这个非零的点把当前这个原创 2016-08-11 16:55:05 · 483 阅读 · 0 评论 -
【51Nod1133】不重叠的线段
DescriptionX轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。 例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。Solution经典的序列上的区间问题。明显的贪心把右端点从小到大排一个序(第一关键字),左端点从小到大排一个序(第二关键字)。 然后模拟一遍就可以了。为什么这样是对的很明原创 2016-08-31 18:41:47 · 1439 阅读 · 0 评论 -
【NOIP模拟】Crisis
Description最近几年,一场新的金融危机爆发了,这场危机使得很多人陷入的经济问题的困境。一些X公司的员工试图通过要求加薪度过这一难关。 X公司有着严格的等级制度,除了公司所有者小H以外,其他人都有一个直属上司。没有下属的员工称为工人,其他人则称为领导者。 为了加薪,工人们都会向他们的上司提交请愿书。当然,每个领导者都希望自己的下属能够尽可能快乐的工作,所以当至少有T%的下属提交请愿书时,原创 2016-09-10 14:16:24 · 772 阅读 · 0 评论