贪心
Master.Yi
学习他人,提升自己;
提升自己,帮助他人。
展开
-
BZOJ4560: [JLoi2016]字符串覆盖【KMP+贪心+DP】
题目描述:字符串A有N个子串B1,B2,…,Bn。如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠),这样A中的若干字符就被这N个子串覆盖了。问A中能被覆盖字符个数的最小值和最大值。字符串长度A<=10000,N<=4,子串长度<=1000题目分析:首先用KMP求出每个串在A中的出现位置。先考虑直接DP的做法:设f[S][i]f[S][i]f[S...原创 2020-03-27 23:01:06 · 288 阅读 · 0 评论 -
模拟赛20200218【递归/构造,连接字符串最小字典序,带目标打怪兽】
T1:环n,l,k≤100,T≤10n,l,k\le100,T\le10n,l,k≤100,T≤10题解:解法一:观察B操作相当于把1之间的0的个数其中一个+1,后一个-1,1循环代表0的个数也是循环的。根据循环对应关系画一画可以得出0的个数只能有2种,削去小的那部分,剩下的问题转化为了子问题(子问题的答案反过来再加上小的部分的0,就是当前0的个数的可行解)。那么T(n,k)=T(k,...原创 2020-02-25 10:07:30 · 184 阅读 · 0 评论 -
模拟赛20200222【路径异或值种数,贪心模拟DP,分数逼近→斜率最小值】
T1 小b爱旅行:题解:这题与BZOJ2115的想法差不多,任意找出一棵生成树,从1出发的所有路径都可以表示为一条树链异或上一些环。求出环的线性基,对于每条树链在线性基上跑一遍去重(异或出的最小值相同的就是重复的),数一下不等价的树链条数乘上2线性基大小2^{线性基大小}2线性基大小就是答案。如果有加边操作:因为只用考虑1所在的连通块,所以加入的边如果两个端点都不在1所在的连通块我们就...原创 2020-02-22 20:47:00 · 220 阅读 · 0 评论 -
模拟赛Day1(20200207) T3 二分题【对树的重心的充分利用】
题目描述:题目分析:先考虑k=nk=nk=n的情况,这是一个经典问题,结论为所有点到重心的距离和。证明:对任意一点uuu,都有dis(pi,pi+1)≤dis(pi,u)+dis(u,pi+1)dis(p_i,p_{i+1})\le dis(p_i,u)+dis(u,p_{i+1})dis(pi,pi+1)≤dis(pi,u)+dis(u,pi+1)那么就有∑i=1ndis(...原创 2020-02-03 23:54:14 · 196 阅读 · 0 评论 -
省选模拟赛20200129 T1 (分割字符串使最大字典序子串最小)【二分,贪心,后缀数组】
题目描述:长度为nnn的字符串sss,至多可以分成mmm段,使所有段的所有子串中字典序最大的子串字典序最小,输出这个串。n≤105,m≤15n\le10^5,m\le15n≤105,m≤15题目分析:事实告诉我们最大值最小真的可以二分。。先求出后缀数组,得到本质不同的子串个数。然后二分答案,每次先通过后缀数组求出第mid小的子串,然后贪心进行检验。检验的时候,从后往前贪心,每次加入一...原创 2020-01-29 22:30:39 · 326 阅读 · 0 评论 -
NOIP模拟赛20191026 T3 Repulsed【树上控制型贪心】
题目描述:n个点的树,每个节点可以放置任意个灭火器,每个灭火器可以浇灭距离不超过k条边的火,且最多只能浇灭s个点的火。现在n个点全都有火,问把火全部浇灭的最少灭火器数量。n<=100000,k<=20,s<=109题目分析:这个题,如果没有s的限制,就是个提高-的贪心题。可以dfs从下往上传最浅的灭火器和最深的没有被扑灭的火,然后匹配或者新加灭火器,复杂度O(n)。或者按...原创 2019-10-26 17:30:44 · 162 阅读 · 0 评论 -
BZOJ2067: [Poi2004]SZN【贪心DP】
题目描述:n个点的树,问最少需要多少条线才能覆盖所有边,以及最少用线的情况下最长线的最短长度。一条边只能被覆盖一次,线与线之间点可以相交。n<=10000题目分析:我们先不考虑最少用线。一个点iii(非根节点),由于它的父亲要被覆盖,所以最少用线的情况下这条线一定可以往其中一个儿子延伸,其余儿子连到自己的这条线就要两两配对,用d[i]d[i]d[i]表示iii的度数,则iii的贡...原创 2019-10-15 13:17:33 · 160 阅读 · 0 评论 -
BZOJ1899: [Zjoi2004]Lunch 午餐【贪心DP】
题目描述:两个窗口,每个人有打饭时间aia_iai和吃饭时间bib_ibi,安排队伍顺序,使得从0时刻到最后一个吃完的总用时最少。n<=200,ai,bi<=200n<=200,a_i,b_i<=200n<=200,ai,bi<=200题目分析:显然需要一个排序,于是大家非常愉快地就让吃饭时间长的人在前面了。然而我太菜了,不能一眼看出这个结论,...原创 2019-10-05 09:04:50 · 145 阅读 · 0 评论 -
BZOJ2457: [BeiJing2011]双端队列【排序贪心】
题目描述:Sherry现在碰到了一个棘手的问题,有N个整数需要排序。Sherry手头能用的工具就是若干个双端队列。她需要依次处理这N个数,对于每个数,Sherry能做以下两件事:1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;2.将当前数放入已有的队列的头之前或者尾之后。对所有的数处理完成之后,Sherry将这些队列排序后就可以得到一个非降的序列。n<=200000....原创 2019-09-14 20:54:20 · 347 阅读 · 0 评论 -
BZOJ2456: mode【趣题】
题目描述:找出n个数中出现次数大于n/2的数,保证存在,空间限制1MB。n<=500000。题目分析:有一个数的出现次数超过了n/2,那么我们可以用它来抵消其它的数。具体做法就是依次读入,然后不同的数抵消,相同就cnt++,留下的数就是答案。Code:#include<cstdio>int main(){ int n,x=-1,y,s=0; scanf("%d...原创 2019-09-14 20:36:15 · 178 阅读 · 0 评论 -
BZOJ2638: 黑白染色【01BFS】
题目描述:你有一个n*m的矩形,一开始所有格子都是白色,然后给出一个目标状态的矩形,有的地方是白色,有的地方是黑色,你每次可以选择一个连通块(四连通块,且不要求颜色一样)进行染色操作(染成白色或者黑色)。问最少操作次数。题目分析:(并不是很懂 )枚举最后一次修改的连通块中的一个点,想象一下还原染色的过程,可以感觉到它是一层一层染色的(上一次染色的集合一定可以包含此次的集合),那么如果一个...原创 2019-09-14 10:35:47 · 301 阅读 · 0 评论 -
2016普及组模拟考试 02题
二、笨笨的西瓜种植(watermelon.cpp) 【题目描述】 笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的…… 笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多。 笨笨的结论是这样的: 从西瓜地B处到E处至少要种植T个西瓜,这个范围的收获就可以最大化。 笨笨不想那么辛苦,所以他想种植的西瓜尽量少,而又满足每一个所得的结论。 【输入】 第一行两个数n,m(n原创 2016-09-05 14:00:41 · 495 阅读 · 0 评论 -
【贪心】 篱笆
篱笆时间限制: 1 Sec 内存限制: 128 MB Special Judge提交: 15 解决: 4[提交][状态][讨论版]题目描述 小明要做一个篱笆,篱笆由N块高度不同的木条组成,我们定义它的好看程度为相邻的篱笆的高度差的绝对值之和。小明已经买好了木条,但它不知道要如何安排顺序,才能使他的篱笆与小华的相似,并且尽量好看。 我们认为两个篱笆相似当且仅当两个原创 2016-11-11 13:45:56 · 708 阅读 · 0 评论 -
贪心总结
好久没写博客啦最近做了许多贪心的题目,感觉整个人的身心都通透了啊做着做着,发现其实贪心也是有许多基本模型的,趁热打铁,把孤的心得体会记录下来,希望对大家,也对孤有所帮助。(以下内容为孤自己整理,有不足之处还请多多指教)一、区间覆盖问题常常会遇到这样一种题目:在一条(时间、数等)轴上,有几段区间。通常会有这几种问法:(1)、在轴上放最少的点,使得每一段区间都至少有一(若干)个原创 2017-07-15 17:50:47 · 649 阅读 · 0 评论 -
CQBZ 2444 帮忙
帮忙题目描述【题目背景】在高考研讨会上,随着 z 同学对 zn 了解的深入,发现她不仅是一个善良的女孩子,还 是一个很勤劳的女生,哇塞,这样棒的女生在 21世纪真是太难遇到了,要是可以娶到这样的 女生,小 z 陷入了无限的 yy 中高考研讨会进入了尾声,校长一声令下,搬椅子喽~~~~,只见平时道貌岸然的那些所谓的好学生们一听要干活全跑了,shit~~!!操场上只剩 zn 与 z ...原创 2018-11-07 08:43:35 · 291 阅读 · 0 评论 -
九省联考2018 IIIDX 【线段树(高级贪心???)】
题目传送门题目描述:(略)题目分析:把限制关系画出来,会发现形成了一种树形的限制关系,一个数的所有儿子是连续的。倘若di互不相同,那么容易看出这就是一个中序遍历贪心,每个点取值域末端-siz的值。但是di相同就会出问题,比如这个例子:4 2.01 1 1 2按照错误的贪心方法,流程大概是这样的:出了什么问题呢?因为第二大和第三大是相等的!也就是说二号点可以标2,四号点标3,...原创 2019-03-04 18:58:19 · 187 阅读 · 0 评论 -
BZOJ 4260: Codechef REBXOR 【Trie树贪心求区间异或和最值】
题目传送门题目分析:设f[i]f[i]f[i]表示[1,i][1,i][1,i]中区间异或和的最大值 ,g[i]g[i]g[i]表示[i,n][i,n][i,n]中区间异或和的最大值(一个前缀一个后缀)那么答案就是max{f[i]+g[i+1]}max\{f[i]+g[i+1]\}max{f[i]+g[i+1]}考虑如何求fff,记s[i]s[i]s[i]表示[1,i][1,i][1,i...原创 2019-03-19 21:59:47 · 329 阅读 · 0 评论 -
BZOJ 3901: 棋盘游戏 【贪心】
题目分析:题解就直接看这位dalao的博客吧~我只想补充证明一下为什么左上角的那块X*X的矩形的任意状态都可以经过操作来得到。实际上就相当于要证明对于任意的1≤i≤X1\le i\le X1≤i≤X,1≤j≤X1\le j\le X1≤j≤X,我们能否在不改变X*X矩形的其它点状态的情况下改变(i,j)(i,j)(i,j)的状态1≤i≤X−11\le i\le X-11≤i≤X−1,1≤...原创 2019-03-12 21:38:26 · 179 阅读 · 0 评论 -
HDU 6326 Problem H. Monster Hunter && LOJ #2509. 「AHOI / HNOI2018」排列【合并式贪心】
题目描述:HDU6326传送门题目分析:又是一道奇妙的贪心题。下面是官方题解,写得很清晰。。这种“不能立马打但是xxx之后一定先接着打"的贪心合并思路非常巧妙。不过注意合并i,j的时候并不是简单相加,而是a=ai+max(aj−bi,0),b=bj+max(bi−aj,0)a=a_i+max(a_j-b_i,0),b=b_j+max(b_i-a_j,0)a=ai+max(aj−...原创 2019-07-07 19:00:21 · 220 阅读 · 0 评论 -
Codeforces 183D T-shirt【贪心DP】
#include<bits/stdc++.h>#define maxn 3005#define maxm 305using namespace std;int n,m,cnt[maxm];double p[maxn][maxm],ans,f[maxn][maxm],g[maxn],sum[maxn];struct node{ double x;int k; node(){...原创 2019-08-24 11:42:48 · 165 阅读 · 0 评论 -
【贪心】 noi openjudge 4.6 Ride to Office
2404:Ride to Office总时间限制: 1000ms 内存限制: 65536kB描述Many staff of are living in a place called MZone, far from their office( 4.5 km ). Due to the bad traffic, many staff choose to ri原创 2016-08-26 13:57:56 · 2132 阅读 · 1 评论