自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有听众的演讲

そんなことだけで 嬉しい 満たされてしまう

  • 博客(8)
  • 收藏
  • 关注

原创 【Bzoj4027】兔子与樱花

题意给一个n个结点的树,每个结点有最大载重m,上面有c[i]朵花,对于每个结点,它的儿子个数和花的朵数不能超过m。现在可以删掉一些结点,每删掉一个,它的花就会给父亲,求最多能删掉多少结点。解析树形Dp+贪心。 可以直接Dfs递归实现。 显然从权值小的开始删起。#include <cstdio>#include <vector>#include <algorithm>#define Rep(

2017-05-23 22:03:10 402

原创 【Bzoj3522】Hotel

题意有一个树形结构,每条边的长度相同,任意两个节点可以相互到达。选3个点。两两距离相等。有多少种方案?解析满足条件的点对一定是“有一个中心点,三个点到中心点的距离相等,且三个点分别在不同子树中”这种情况。(因为如果在同一子树中会被重复统计)。 那么枚举中心点,然后遍历子树,统计答案。 令cnt[i]表示当前子树中深度为i的点有多少个。 f[i]表示当前点已经遍历过的子树中,深度为i的点有多少个

2017-05-23 21:57:01 348

原创 没有上司的舞会

题意某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。解析经典题,dp[i][0]表示不选i时能取得的最大利益

2017-05-23 21:48:30 311

原创 【Bzoj1060】时态同步

题意给你一个n个结点的树。每条边上有一个权值,你可以给边加上权值,求最少要加上多少权值才能使根结点到每个叶子结点的权值相同。解析Dfs即可,每个结点的子结点都要加上其与最大子结点的差值。#include <cstdio>#include <cstring>#include <algorithm>#define Rep( i , _begin , _end ) for(int i=(_begin)

2017-05-23 21:45:50 373

原创 奇怪的题目

没有题面。现在需要你写一种数据结构,支持以下两种操作。 1. 给出 L R K D,代表给你一个长度等于R-L+1的等差数列,首项为K,公差为D,并将它对应加到a[L]~a[R]的每一个数上。即:令a[L]=a[L]+K,a[L+1]=a[L+1]+K+D。 2. 给出 L R X,我们设a[R] - a[L]的值为tmp。对于给定的整数x,需要你判断tmptmptmp^{tmp} 的位数是否达

2017-05-20 15:06:53 495

原创 【Bzoj4653】区间

题意在数轴上有 n个闭区间 [l1,r1],[l2,r2],…,[ln,rn]。现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置。对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间 [li,ri] 的长度定义为 ri−li,即等于它的右端点的值减去左端点的值。求所有合法方案中最小的花费。如果不存在合法的方案,输出 −1。解析我们用一棵线段树来保存点的

2017-05-01 15:36:33 556

原创 【Bzoj1029】建筑抢修

题意给出n个需要抢修的建筑,每个建筑抢修需要t1时间,并且要在t2之前完成抢修,问在时间S内能抢修的建筑最多有多少个。解析贪心,首先按t2排序,能修则修。然后不能的话每当有建筑时判断,如果这个建筑需要用时比之前的短,就替换。#include <queue>#include <cstdio>#include <algorithm>#define Rep( i , _begin , _end ) f

2017-05-01 15:26:24 498

原创 【Bzoj3668】起床困难综合症

题意给你n个操作包括按位与,按位或,按位异或。还有一个参数m,请你找0~m中的经过n个操作后最大的数,输出这个最大值。分析首先二进制运算的每一位是相对独立的,可以考虑它的每一位。首先,如果某位经过n次操作能变成1,这一位就要选(如果能选0就选0,使数字尽量小)。如果无论1,0都无法变成1,也选0。(在这一位上填1产生的贡献比在它后面全填上1还要大。能填则填。)#include <cstdio>#i

2017-05-01 14:52:23 468

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除