• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  高效算法

上一页 1 2 3 4 5 6 7 ··· 9 下一页
HDU 3586 Information Disturbing (树形DP+二分)

摘要:题意:给出n个士兵,其中1号为指挥官,关系为树状结构,叶子为先锋,现在要在总花费小于等于m的情况切断所有的先锋与指挥官的联系,问最大的限制最小为多少。 析:很明显是一个树形DP,但是限制怎么求呢,就是通过二分,然后变成一个判定性问题,dp[i] 表示切断 以 i 的子树的最少花费不多少,当然是不超过 阅读全文
posted @ 2017-08-22 10:23 dwtfukgv 阅读(174) 评论(0) 推荐(0)
POJ 3709 K-Anonymous Sequence (斜率优化DP)

摘要:题意:有一个不递减的序列,现在要把这些数分成若干个部分,每部分不能少于m个数。每部分的权值为所有数减去该部分最小的数的和。求最小的总权值。 析:状态方程很容易写出来,dp[i] = min{dp[j] + sum[i] - sum[j] - (i-j)*a[j+1] },然而这个复杂度是 O(n^2 阅读全文
posted @ 2017-08-09 21:15 dwtfukgv 阅读(204) 评论(0) 推荐(0)
CodeForces 489E Hiking (二分+DP)

摘要:题意: 一个人在起点0,有n个休息点,每个点有两个数值,分别表示距离起点的距离xi,以及所获得的愉悦值bi,这个人打算每天走L距离,但实际情况不允许他这么做。定义总体失望值val = sum(sqrt(Ri - L)) / sum(bi); 现在要使得val最小(这个人必须要到达最终的节点)。 析: 阅读全文
posted @ 2017-08-08 11:08 dwtfukgv 阅读(365) 评论(0) 推荐(0)
HDU 2829 Lawrence (斜率优化DP或四边形不等式优化DP)

摘要:题意:给定 n 个数,要你将其分成m + 1组,要求每组数必须是连续的而且要求得到的价值最小。一组数的价值定义为该组内任意两个数乘积之和,如果某组中仅有一个数,那么该组数的价值为0。 析:DP状态方程很容易想出来,dp[i][j] 表示前 j 个数分成 i 组。但是复杂度是三次方的,肯定会超时,就要 阅读全文
posted @ 2017-08-06 22:59 dwtfukgv 阅读(325) 评论(0) 推荐(0)
UVa 1451 Average (斜率优化)

摘要:题意:给定一个01序列,让你找出一个长度大于等于F的连续子序列使得平均值最大。 析:直接枚举肯定是O(n^3),超时,然后用前缀和来优化,O(n^2),还是太大,这个要求的平均值是 i > j (sum[i] - sum[j-1]) / (i-(j-1)),这正好就是一个斜率的表示形式,可以考虑用优 阅读全文
posted @ 2017-08-06 13:08 dwtfukgv 阅读(194) 评论(0) 推荐(0)
POJ 1160 Post Office (四边形不等式优化DP)

摘要:题意: 给出m个村庄及其距离,给出n个邮局,要求怎么建n个邮局使代价最小。 析:一般的状态方程很容易写出,dp[i][j] = min{dp[i-1][k] + w[k+1][j]},表示前 j 个村庄用 k 个邮局距离最小,w可以先预处理出来O(n^2),但是这个方程很明显是O(n^3),但是因为 阅读全文
posted @ 2017-08-05 17:09 dwtfukgv 阅读(227) 评论(0) 推荐(0)
HDU 3507 Print Article (斜率DP)

摘要:题意:要输出N个数字a[N],输出的时候可以连续连续的输出,每连续输出一串,它的费用是 “这串数字和的平方加上一个常数M”。 析:这个题很容易想到DP方程dp[i] = min{dp[j] + M + (sum[i]-sum[j])^2},但是很明显是O(n^2),TLE是必然的,所以要进行优化。 阅读全文
posted @ 2017-08-05 11:19 dwtfukgv 阅读(165) 评论(0) 推荐(0)
UVa 10245 The Closest Pair Problem (分治)

摘要:题意:给定 n 个点,求最近两个点的距离。 析:直接求肯定要超时的,利用分治法,先把点分成两大类,答案要么在左边,要么在右边,要么一个点在左边一个点在右边,然后在左边或右边的好求,那么对于一个在左边一个在右边的,我们可以先求全在左边或右边的最小值,假设是d,那么一个点在左边,一个点在右边,那么横坐标 阅读全文
posted @ 2017-08-04 14:45 dwtfukgv 阅读(248) 评论(0) 推荐(0)
HDU 6047 Maximum Sequence (贪心+单调队列)

摘要:题意:给定一个序列,让你构造出一个序列,满足条件,且最大。条件是 选取一个ai <= max{a[b[j], j]-j} 析:贪心,贪心策略就是先尽量产生大的,所以就是对于B序列尽量从头开始,由于数据比较大,采用桶排序,然后维护一个单调队列,使得最头上最大。 代码如下: 阅读全文
posted @ 2017-07-27 18:32 dwtfukgv 阅读(410) 评论(0) 推荐(0)
HDU 6034 Balala Power! (贪心+坑题)

摘要:题意:给定一个 n 个字符串,然后问你怎么给 a-z赋值0-25,使得给定的字符串看成26进制得到的和最大,并且不能出现前导0. 析:一个很恶心的题目,细节有点多,首先是思路,给定个字符一个权值,然后要注意的进位,然后排序,从大到小,给每个字符赋值,如果最后一个出现前导0,就得向前找一个最小的不在首 阅读全文
posted @ 2017-07-25 20:13 dwtfukgv 阅读(1341) 评论(0) 推荐(0)
HDU 4430 Yukari's Birthday (二分)

摘要:题意:有 n 个蜡烛,让你插到蛋糕上,每一层要插 k^i个根,第0层可插可不插,插的层数是r,让 r * k 尽量小,再让 r 尽量小,求r 和 k。 析:首先先列出方程来,一个是不插的一个是插的,比如插的是 sigam(0, r, k^i) = n,然后 r 比较小,可以枚举 r,然后二分求 k。 阅读全文
posted @ 2017-07-25 09:20 dwtfukgv 阅读(210) 评论(0) 推荐(0)
CodeForces 670D2 Magic Powder - 2 (二分)

摘要:题意:今天我们要来造房子。造这个房子需要n种原料,每造一个房子需要第i种原料ai个。现在你有第i种原料bi个。此外,你还有一种特殊的原料k个, 每个特殊原料可以当作任意一个其它原料使用。那么问题来了,你最多可以造多少个房子呢? 析:首先可以先把开始能造出的先处理出来,然后再进行二分,当然也可以直接进 阅读全文
posted @ 2017-07-18 11:19 dwtfukgv 阅读(133) 评论(0) 推荐(0)
HDU 5015 233 Matrix (矩阵快速幂)

摘要:题意: 有一种矩阵,它的第一行是这样一些数:a 0,0 = 0, a 0,1 = 233,a 0,2 = 2333,a 0,3 = 23333...) 除此之外,在这个矩阵里, 我们有 a i,j = a i-1,j +a i,j-1( i,j ≠ 0).现在给你 a 1,0,a 2,0,...,a 阅读全文
posted @ 2017-07-12 17:12 dwtfukgv 阅读(254) 评论(0) 推荐(0)
CodeForces 658C Bear and Forgotten Tree 3 (构造)

摘要:题意:构造出一个 n 个结点,直径为 m,高度为 h 的树。 析:先构造高度,然后再构造直径,都全了,多余的边放到叶子上,注意直径为1的情况。 代码如下: 阅读全文
posted @ 2017-07-05 23:57 dwtfukgv 阅读(207) 评论(0) 推荐(0)
CodeForces 782B The Meeting Place Cannot Be Changed (二分)

摘要:题意:题意:给出n个人的在x轴的位置和最大速度,求n个人相遇的最短时间。 析:二分时间,然后求并集,注意精度,不然会超时。 代码如下: 阅读全文
posted @ 2017-07-05 09:44 dwtfukgv 阅读(178) 评论(0) 推荐(0)
CodeForces 404C Restore Graph (构造)

摘要:题意:让人构造一个图,满足每个结点边的数目不超过 k,然后给出每个结点到某个结点的最短距离。 析:很容易看出来如果可能的话,树是一定满足条件的,只要从头开始构造这棵树就好,中途超了int。。。找了好久。 代码如下: 阅读全文
posted @ 2017-07-02 21:14 dwtfukgv 阅读(134) 评论(0) 推荐(0)
UVa 1204 Fun Game (状压DP)

摘要:题意:有一些小孩(至少两个)围成一圈,有 n 轮游戏,每一轮从某个小孩开始往左或者往右伟手帕,拿到手帕写上自己的性别(B,G),然后以后相同方向给下一个。 然后在某个小孩结束,给出 n 轮手帕上的序列,求最少有多少个小孩。 析:很容易知道是状压DP,也很容易写出状态方程,dp[s][i][j] 表示 阅读全文
posted @ 2017-07-02 16:16 dwtfukgv 阅读(265) 评论(0) 推荐(0)
HDU 3001 Travelling (状压DP + BFS)

摘要:题意:有一个人要去旅游,他想要逛遍所有的城市,但是同一个城市又不想逛超过2次。现在给出城市之间的来往路费,他可以选择任意一个点为起点。 问逛遍所有城市的最低路费是多少。 析:用三进制表示每个城市的访问次数,然后 bfs 进行遍历,不过要注意这个题卡内存,必须要去年一些无用的状态,要不然会超内存的,还 阅读全文
posted @ 2017-06-28 22:36 dwtfukgv 阅读(142) 评论(0) 推荐(0)
POJ 1795 DNA Laboratory (贪心+状压DP)

摘要:题意:给定 n 个 字符串,让你构造出一个最短,字典序最小的字符串,包括这 n 个字符串。 析:首先使用状压DP,是很容易看出来的,dp[s][i] 表示已经满足 s 集合的字符串以 第 i 个字符串结尾,他很容易就求得最短长度,但是这个字符串怎么构造呢, 由于要字典序最小,所以就不好搞了,挺麻烦的 阅读全文
posted @ 2017-06-25 11:24 dwtfukgv 阅读(821) 评论(0) 推荐(0)
URAL 2021 Scarily interesting! (贪心+题意)

摘要:题意:给定两个队伍的每个人的得分,让你安排怎么比赛才能使得观众知道冠军的时间最长。 析:贪心,很简单,就是先开始总分高的先出最差劲的,总分低的先出最厉害的,这个题当时实在是读的不明白啊,WA了好多次。 代码如下: 阅读全文
posted @ 2017-04-30 15:48 dwtfukgv 阅读(283) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 9 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3