----贪心
文章平均质量分 63
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj5407 Deep
失败的燃烧军团想要逃回深渊,Khadgar 想要追击它们。 然而进入深渊的传送门只有一座,燃烧军团和Khadgar 各有一些法力水晶,由Khadgar 先手,双方每次可以作出如下选择: • 使用一个法力水晶,使得传送门的法力等级增加一。 • 不用法力水晶,让对方增加等于传送门法力等级的深度,然后将传送门的法力值清零。特别地,若法力水晶数不为零且传送门法力等级为零则不能进行这样的操作。 双方原创 2017-11-06 20:29:15 · 248 阅读 · 0 评论 -
Jzoj5455【NOIP2017提高A组冲刺11.6】拆网线
企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线? 今天考场上又zz了,只切了第二原创 2017-11-06 16:41:32 · 505 阅读 · 0 评论 -
Jzoj5456【NOIP2017提高A组冲刺11.6】奇怪的队列
nodgd的粉丝太多了,每天都会有很多人排队要签名。 今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。 但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记原创 2017-11-06 16:57:31 · 486 阅读 · 0 评论 -
Jzoj5245 Competing Souls
温馨提示:本文附带bgm 某日,竞赛班的学生来到了一家糖果店。 店里卖着M袋糖果,第i袋糖果里装有i颗糖,价格为i。 有N个学生对这些糖果产生了兴趣,于是迅速站成一排,且将他们编号为1到N。其中第i个学生带着a[i]¥。每一轮,他们按顺序买糖果(每一轮每个人只会买一袋)。由于体内的竞争之魂与超乎常人的不服输精神,当前学生买的这袋糖果一定会比上一个人多(当然,第一原创 2017-11-21 21:41:47 · 386 阅读 · 0 评论 -
Bzoj5088 HDU 6000 Wash
题目传送门 呃这个不应该是一个简单的二分答案+贪心吗(似乎以前做过但是因为long long 卡了好久) 我们考虑只洗衣服的情况,显然就是一个非常愚蠢的二分 让后再来单独考虑烘干的情况,和上面一样也是一个二分 最后考虑如何将两者的时间合并,显然,我们可以将所有衣服送出机器的时间存下来排序 按照贪心原则,让最大值尽可能小,所以用最大的和最小的相加,依次类推。。。 复杂度O(L+n lg原创 2017-12-03 22:02:33 · 329 阅读 · 0 评论 -
Jzoj3020 最多的约数
WZK是个数学狂热爱好者。最近他又想出了一道题目来考大家。题目很简单,给定一个正整数n,对于所有不超过n的正整数,找到包含约数最多的一个数。如果有多个这样的数,那么回答最小的那个。 直接dfs即可,注意两个地方要优化:1.按照素数表的顺序递增枚举 2.每个数的幂次递减,按照贪心原则就可以知道 #include #define L long long int w[500000],t; boo原创 2017-12-21 17:16:05 · 441 阅读 · 0 评论 -
Jzoj3154 删数字
给你一个N 个数组成的序列V,要你删除其中K 个数,M 表示剩下的数字 中任意两个数的差值的最大值,m 表示最小差值,要你计算删除K 个数后,M+m的最小值。 一看便知道先排序,那么答案必然是一段连续的区间,直接上单调队列就好 #pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include #include #includ原创 2017-12-30 21:21:20 · 281 阅读 · 0 评论 -
Jzoj4210 我才不是萝莉控呢
小Y:“小R你是萝莉控吗。”小R:“...” 为了避免这个尴尬的话题,小R决定给小Y做一道题。 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。 现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-原创 2018-01-18 19:52:40 · 1659 阅读 · 0 评论 -
Jzoj2309 辽哥游戏
张辽是一个长发飘飘的非常聪明的男孩,人人都称他为“辽哥”。辽哥喜欢玩一个有趣的电脑游戏。这个游戏开始的时候有n个碉堡,每个碉堡拥有一个防御值a和一个附加值b。玩家拥有一个初始的攻击力S。如果玩家破坏了一个碉堡,则他能得到1分。每一次,辽哥会选择一个碉堡进行攻击。所有未被破坏的碉堡会联合起来防御,因此为了破坏那个碉堡,辽哥的攻击力必须大于或者等于所有未被破坏的碉堡的防御值之和,否则辽哥就会输掉游戏。原创 2018-01-20 21:09:00 · 386 阅读 · 0 评论 -
51Nod1295 XOR key
题目看这里 经典的区间xor最大值问题 很久以前就知道做法所以来写一写,可持久化trie 意外地发现好写而且跑得很快 #pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include #include #include #define N 50010 using namespace std; int c[N*40],s[N*4原创 2018-02-27 21:56:26 · 330 阅读 · 0 评论 -
51Nod 1052/1053/1115 最大M子段和V1/V2/V3
V1 N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的。如果M >= N个数中正数的个数,那么输出所有正数的和。N,M 例如:-2 11 -4 13 -5 6 -2,分为2段,11 -4 13一段,6一段,和为26。 V2 N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数原创 2018-02-21 00:06:37 · 377 阅读 · 0 评论 -
51Nod1601 完全图的最小生成树计数
题目看这里 这个题好像在哪里做过。。。但是翻不到 基本思想:在最高位不同的两个集合里只能有一条边相连 我们可以用trie来做,每次到一个节点,就在他的两个儿子里找xor值最小的加到答案里 若有超过2个权值相同的点时,计算方案的方法为x^(x-2),这个是完全图的生成树个数公式 无压力·真rank1 #include #include #include #define N 10001原创 2018-02-22 22:29:28 · 498 阅读 · 0 评论 -
Jzoj5619 重围
贪心的题目,但是其实并不是特别好想 我们要先将所有怪物分成两类,一类是带有正收益的,一类是带有负收益的,显然应该先击杀第一类 对于第一类怪物,如果我们当前能力值足够击杀一直怪物那么我们应该立刻击杀,所以可以按照Ai来排序 对于第二类怪物,如果我们最后可以将这些怪物全部击杀,那么剩下的魂力值是肯定的,记为C' 那么将这个过程倒过来,我们可以视为每次消耗Bi的魂力,让后恢复Ai点魂力,这就变成原创 2018-04-17 20:09:21 · 139 阅读 · 0 评论 -
51Nod1257 背包问题 V3
题目看这里 01分数规划入门题 这道题有非常经典的错误解法:按照pi/wi排序 这样是不能保证答案最大的,反例(本体样例)已经有了 那么我们来考虑怎么做 首先我们二分这个答案ans 让后我们给每个物品i设置一个权值v[i]=p[i]-ans*w[i] 所有物品按照v排序,取前k大求和 那么如果ans是正确答案,那么显然,这个和S=0 如果ans大于正确答案,S 如果ans小于正原创 2018-04-27 20:00:48 · 219 阅读 · 0 评论 -
51Nod1364 最大字典序排列
题目看这里一道比较简单的贪心题容易想到从前到后确定每一位我们可以用一个splay来维护当前未确定的部分的顺序假设当前剩下k次操作机会那么我们可以求出splay中前k+1个元素中的最大元素i,令k减少rank(i),让后将其输出并从splay中删掉最后k=0时,输出splay中剩余元素比题解那个线段树好写多了,主要是不用想,而且splay还挺快的#include<stdio.h> #in...原创 2018-04-27 22:03:39 · 261 阅读 · 0 评论 -
Jzoj4896 兔子
在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张N个点、M条边的无向连通图,而度数大于2的点至多有1个。 兔子们决定把其中K个兔子窝扩建成临时避难所。当危险来临时,每只兔子均会同时前往距离它最近的避难所躲避,路程中花费的时间在数值上等于原创 2017-11-03 20:53:05 · 370 阅读 · 0 评论 -
Jzoj4892 最优得分
给你n道题目,你有t的时间,每个题有一个初始的分数Ai,让后每过1分钟,第i道题目分值减少Bi 假设你可以做出全部题目,而做一个题i的用时是固定的常数Ci,那么请问你最多能得到多少分 (好刺激的赛制呢) 显然是一个dp,但是光dp还不够,我们还要套上贪心才能最优 考虑当前已经决定做哪几道题目,那么用什么顺序去完成这些题目得分最高? 我们随便考虑一个顺序X,考虑交换其中两个题目X[j]和X原创 2017-11-02 21:44:19 · 368 阅读 · 0 评论 -
Jzoj5445【NOIP2017提高A组冲刺11.2】失格
胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤。 ——太宰治《人间失格》 回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i。 我想用n-1条线把所有的事件连起来,变成一个连通块。一条连接了事件x和事件y的线会产生min(p_x mod p_y,p_y mod p_x)的喜悦值。 日日重复同样的事,遵循着与昨日相同的惯例,若能避开猛烈的狂喜,自然也不会有悲痛的来原创 2017-11-02 20:09:23 · 389 阅读 · 0 评论 -
Jzoj5409 Fantasy
Y sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。 对于100% 的数据,有1 此题做法比较神奇,也很好懂,但是很难搞清楚如何去构原创 2017-11-06 20:55:19 · 297 阅读 · 0 评论 -
Jzoj4790 选数问题
在麦克雷的面前有N个数,以及一个R*C的矩阵。现在他的任务是从N个数中取出R*C个,并填入这个矩阵中。矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值。现在,麦克雷想知道矩阵的最小法值是多少 采用二分+贪心策略 我们将r*c个数排序,显然,最优情况每一行必然是序列中一段连续的数字 二分可以接受的最大法值 那么判定合法的段数有没有r段即可原创 2017-10-26 20:42:23 · 322 阅读 · 0 评论 -
Jzoj4788 序列
题意:给你a,b两个序列,每次可以在区间[l,r]对每个数加一,求最少的步数使a变成b 注意,整个过程都是在mod 4的意义下的,a,b所有元素的值都在[0,3]之间 我们可以先考虑不存在Mod 4 的情况 我们假设di=max(0,bi-ai) 那么显然,对于一个位置i,我们需要将其操作max(0,di)次 考虑从1开始,我们设f[i]表示将1~i的d清零所需要的最小次数 显然,f[原创 2017-10-26 19:53:41 · 357 阅读 · 0 评论 -
Jzoj3928 射♂击
有问题,找副连,无聊的时候当然也可以找他啦。小W找到了他的叔叔——东厂厂长——宇宙超级无敌老WS yy。他们叔侄两个商量之后决定用弹弓打破社区里的一些窗户,但是弹弓每秒只能彻底打破一扇窗户。而且如果某户窗户的主人回来了的话,他们就不能进行破坏了(不然会死得很惨的)。因为有的人装的玻璃好,有的人装的玻璃差,有的人装的玻璃高,有的人装的玻璃矮,所以你不能要求他们叔侄两个打破不同的窗户获得的快乐值必须相原创 2017-10-04 11:40:15 · 276 阅读 · 0 评论 -
Jzoj3780 Magical GCD
给你一个序列s,求区间[l,r]使得gcd(s[l]~s[r])*(r-l+1)最大,输出这个最大值,n 显然,我们暴力是不可以过的,那么我们考虑一下的做法: 我们维护一个g数组,g[i]表示gcd(s[i]~s[r]) 那么我们每次移动r指针,让后重新更新g数组,显然每个g[i]可以O(lg k)更新,但是这样的复杂度依然是n^2lgk 我们发现,对于g[i]=g[j]而且i 为什么?原创 2017-09-28 16:25:36 · 385 阅读 · 0 评论 -
Jzoj3906 魏传之长坂逆袭(梦回三国系列)
【题目背景】 众所周知,刘备在长坂坡上与他的一众将领各种开挂,硬生生从曹操手中逃了出去,随后与孙权一起火烧赤壁、占有荆益、成就霸业。而曹操则在赤壁一败后再起不能,终生无力南下。 建安二十五年(220年),曹操已到风烛残年,但仍难忘当年长坂的失误,霸业的破灭。他想如果在刘备逃亡的路中事先布下一些陷阱,便能拖延刘备的逃脱时间了。你作为曹操身边的太傅,有幸穿越到了208年的长坂坡,为大魏帝国贡献一份原创 2017-10-03 22:57:46 · 356 阅读 · 0 评论 -
Jzoj3908 吴传之火烧连营 (梦回三国系列)
【题目背景】 蜀汉章武元年(221年),刘备为报吴夺荆州、关羽被杀之仇,率大军攻吴。吴将陆逊为避其锋,坚守不战,双方成对峙之势。蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致锐气渐失,士气低落。刘备为舒缓军士酷热之苦,命蜀军在山林中安营扎寨以避暑热。陆逊看准时机,命士兵每人带一把茅草,到达蜀军营垒时边放火边猛攻。蜀军营寨的木栅和周围的林木为易燃之物,火势迅速在各营漫延。蜀军大乱,原创 2017-10-04 11:04:28 · 661 阅读 · 0 评论 -
Jzoj4710 Value
题意:有n([1,5000])个物品,每一个有价值v和代价w,当你选择了这个物品后,剩下没选的物品价值减少w,问最大价值? 假设我们已经选好了物品,那么显然,按照w升序排序贪心是最优的选择 让后我们可以用dp来计算最优方案,这样的话我们需要将物品按照w降序排序,否则无法计算转移时的价值变化量 #pragma GCC opitmize("O3") #pragma G++ opitmize(原创 2017-10-14 21:55:43 · 278 阅读 · 0 评论 -
Jzoj4446 B
这道题在梦里就能切了,显然每一位都可以拆开,那么一次操作相当于将一个1左移或者右移,那么全部都移到一侧肯定最佳 #include #define UL long long int n,v[32]={0},c[32]; UL t=0; int main(){ scanf("%d",&n); for(int x,i=0;i<n;++i){ scanf("%d",&x); for(in原创 2017-10-06 21:31:07 · 259 阅读 · 0 评论 -
Jzoj4726 种花
相信大家都猜到题意了,简单说一下 圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大 这道题显然可以用堆,每次将堆顶最大的元素取出并删除两边的元素 但是正确性显然有问题,比如10,11,10,1显然答案是20而不是12 那么每次,我原创 2017-10-15 21:52:23 · 421 阅读 · 0 评论 -
Jzoj4835 量化交易
一眼就可以看出是贪心,问题就是怎么去操作 首先一个很显然的思路就是,开一个小根堆,每次对于一个价格x,如果低于堆顶我们就将其丢进去,否则将堆顶y取出,获得x-y的贡献 但是这样是有问题的,我们会发现有反例: 1 4 2 3 用这种方法求出的答案是1但是正确答案应该是2 所以我们需要增加一种“撤销操作” 类似于种花那道题,我们每次将答案加上了x-y时候,我们也将x丢入堆中,而且要丢入两次,为原创 2017-10-30 07:49:06 · 596 阅读 · 0 评论 -
Jzoj5432 三元组
有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问选出的数的和最大是多少 问选出的数的和最大是多少 贪心的题全部都是差分方法做的。。。无语了全原创 2017-11-08 21:25:19 · 339 阅读 · 0 评论 -
Jzoj5440 【NOIP2017提高A组冲刺11.1】背包
蛤布斯有n种商品,第i种物品的价格为ai,价值为bi。有m个人来向蛤布斯购买商品,每个人每种物品只能购买一个。第j个人有cj的钱,他会不停选择一个能买得起的价格最高的商品买走(如果有多个则选择价值最高的)。你需要求出每个人购买的物品的价值和。 先吐槽几句,今天的题十分坑,第二题是遗忘多时的搜索:迭代加深,考场上勉勉强强打了个bfs还是挂了 第三题是从来没有见过的dp,在图的dfs树上做三进制状原创 2017-11-01 15:54:05 · 595 阅读 · 0 评论 -
CDQ分治&整体二分九连测
整体二分好难a CDQ分治&amp;amp;amp;整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj&amp;amp;lt;A...原创 2018-08-19 21:32:06 · 571 阅读 · 0 评论