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

随笔分类 -  高效算法

上一页 1 2 3 4 5 6 7 8 9 下一页
HDU 5236 Article (概率DP+贪心)

摘要:题意:要求输入一篇N个字符的文章,对所有非负整数i:每到第i+0.1秒时可以输入一个文章字符,每到第i+0.9秒时有P的概率崩溃(回到开头或者上一个存盘点) 每到第i秒有一次机会可以选择按下X个键存盘,或者不存,打印完整篇文章之后必须存盘一次才算完成输入多组N,P,X选择最佳策略使得输入完整篇文章时 阅读全文
posted @ 2017-04-30 00:10 dwtfukgv 阅读(124) 评论(0) 推荐(0)
HDU 5242 Game (贪心)

摘要:题意:给定一棵树,要求从根结点1走k次,每次都是到叶子结点结束,把走过的所有的结点权值加起来,最大是多少。 析:先把每个结点到根结点的路径之和求出来,然后按权值从大到小排序,然后每次把路径中的权值求出来,最后求前k个值的和即可。 代码如下: 阅读全文
posted @ 2017-04-29 19:47 dwtfukgv 阅读(117) 评论(0) 推荐(0)
HDU 5862 Counting Intersections (离散化+扫描线+树状数组)

摘要:题意:给你若干个平行于坐标轴的,长度大于0的线段,且任意两个线段没有公共点,不会重合覆盖。问有多少个交点。 析:题意很明确,可是并不好做,可以先把平行与x轴和y轴的分开,然后把平行y轴的按y坐标从小到大进行排序,然后我们可以枚举每一个平行x轴的线段, 我们可以把平行于x轴的线段当做扫描线,只不过有了 阅读全文
posted @ 2017-04-17 18:17 dwtfukgv 阅读(148) 评论(0) 推荐(0)
Gym - 100801H Hash Code Hacker (构造)

摘要:题意:求 n 个哈希值相同的串。 析:直接构造,通过取模来查找相同的串。 代码如下: 阅读全文
posted @ 2017-04-07 22:30 dwtfukgv 阅读(214) 评论(0) 推荐(0)
HDU 5542 The Battle of Chibi (离散化+树状数组优化DP)

摘要:题意:求n个数中长度为m的上升子序列的个数。 析:很容易想到一个n的三次方的DP,dp[i][j]表示第 i 个数长度为 j 的LIS 有多少个,但是会TLE,因此必须优化,dp[i][j] = sum{dp[k][j-1] | a[i] > a[k]} 我们可以用树状数组优化,当然用线段树也OK, 阅读全文
posted @ 2017-04-06 11:28 dwtfukgv 阅读(270) 评论(0) 推荐(0)
UVaLive 7637 Balanced String (构造)

摘要:题意:给定一个括号的序列,原先的序列是碰到左括号加1,碰到右括号减1,然后把序列打乱,让你找出字典序最小的一个答案。 析:直接从第一个括号判断就好了,优先判断左括号,如果不行就加右括号。 代码如下: 阅读全文
posted @ 2017-04-03 23:08 dwtfukgv 阅读(495) 评论(0) 推荐(0)
Gym - 101142J Java2016 (构造)

摘要:题意:给定一个数字,让你构造成一些表达式,最后结果是该数字的概率要大于50%。 析:我们可以把一个数分解是2的多少次幂,然后加起来就好。 代码如下: 阅读全文
posted @ 2017-03-26 21:46 dwtfukgv 阅读(164) 评论(0) 推荐(0)
POJ 2976 Dropping tests (二分+贪心)

摘要:题意:给定 n 个分数,然后让你去年 m 个分数,使得把剩下的所有的分子和分母都相加的分数最大。 析:这个题并不是分子越大最后结果就越大,也不是整个分数越大,最后结果就越大的,我们可以反过来理解,要去掉 m 个分数,那么就是要选 n-m个分数, 那么就是 sigma(分子) / sigma(分母) 阅读全文
posted @ 2017-03-20 19:06 dwtfukgv 阅读(107) 评论(0) 推荐(0)
POJ 1064 Cable master (二分)

摘要:题意:给定 n 条绳子,它们的长度分别为 ai,现在要从这些绳子中切出 m 条长度相同的绳子,求最长是多少。 析:其中就是一个二分的水题,但是有一个坑,那么就是最后输出不能四舍五入,只能向下取整。 代码如下: 阅读全文
posted @ 2017-03-20 18:29 dwtfukgv 阅读(125) 评论(0) 推荐(0)
UVaLive 4094 WonderTeam (贪心)

摘要:题意:有n支队伍,每两支队伍打两场比赛(主客场各一次),胜得3分,平得1分,输不得分,比赛结束之后会评选出一个梦之队, 梦之队满足以下条件:进球总数最多,胜利场数最多,丢求总数最少,三个都不能并列,求梦之队的最低排名 析:http://blog.csdn.net/l123012013048/arti 阅读全文
posted @ 2017-03-16 11:32 dwtfukgv 阅读(136) 评论(0) 推荐(0)
UVaLive 3266 Tian Ji -- The Horse Racing (贪心)

摘要:题意:田忌赛马,每胜一局就得200,负一局少200,问最多得多少钱。 析:贪心,如果最快的马比齐王的还快,就干掉它,如果最慢的马比齐王的马快,就干掉它,否则用最慢的马去和齐王最快的马比。 代码如下: 阅读全文
posted @ 2017-03-16 11:00 dwtfukgv 阅读(121) 评论(0) 推荐(0)
POJ 2823 Sliding Window (单调队列)

摘要:题意:给定一个序列,从左到右每次的滑动一个窗口,最大值和最小值是多少。 析:普通的方法可能会超时,维护两个单调队列,一个单调递增的,一个单调递减,每次把最值保存下来。 也可以用线段树,RMQ等数据结构,每次查询区间的最小值和最大值。POJ 交G++ 死活超时,交C++才过。 代码如下: 阅读全文
posted @ 2017-03-14 15:49 dwtfukgv 阅读(89) 评论(0) 推荐(0)
UVaLive 4254 Processor (二分+优先队列)

摘要:题意:有n个任务,每个任务有三个参数,r,d,w,表示该任务必须在[r,d]之间执行,工作量是w,处理器执行速度可以变化,当执行速度是s的时候, 一个工作量是w的任务需要需要的执行时间是w/s个工作单位,另外,任务不一定要连续的执行,可以分成若干块,求出处理器执行过程中最大速度的最小值, 速度必须是 阅读全文
posted @ 2017-03-11 10:50 dwtfukgv 阅读(241) 评论(0) 推荐(0)
UVa 1335 Beijing Guards (二分+贪心)

摘要:题意:n 个人成一个圈,每个人想要 ri 种不同的礼物,要求相邻两个人没有相同的,求最少需要多少礼物。 析:如果 n 是偶数,那么答案一定是相邻两个人的礼物总种数之和的最大值,那么如果是奇数,就没那么好做了,我们可以二分答案, 在每次判定时,我们可以有这样的贪心策略,第一个人 1 - r1,在后面的 阅读全文
posted @ 2017-03-11 10:16 dwtfukgv 阅读(119) 评论(0) 推荐(0)
UVaLive 3983 Robotruck (DP + 单调队列)

摘要:题意:有n个垃圾,第i个垃圾坐标为(xi,yi),重量为wi,有一个机器人,要按照编号从小到大的顺序剑气所有的垃圾兵扔进垃圾桶,垃圾桶在原点, 每次总重量不能超过C,两点间距离为曼哈顿距离,求出最短的距离和。 析:第一反应想到的状态是有个数和重量,一看,时间复杂度受不了,只能改。dp[i] 表示从原 阅读全文
posted @ 2017-03-10 16:57 dwtfukgv 阅读(212) 评论(0) 推荐(0)
UVa 10755 Garbage Heap (暴力+前缀和)

摘要:题意:有个长方体由A*B*C组成,每个废料都有一个价值,要选一个子长方体,使得价值最大。 析:我们暴力枚举上下左右边界,然后用前缀和来快速得到另一个,然后就能得到长方体,每次维护一个最小值,然后差就是最大值。 代码如下: 阅读全文
posted @ 2017-03-09 22:24 dwtfukgv 阅读(149) 评论(0) 推荐(0)
UVaLive 3695 Distant Galaxy (扫描线)

摘要:题意:给平面上的 n 个点,找出一个矩形,使得边界上包含尽量多的点。 析:如果暴力那么就是枚举上下边界,左右边界,还得统计个数,时间复杂度太高,所以我们考虑用扫描线来做,枚举上下边界, 然后用其他方法来确定左右边界。我们定义left[i] 表示竖线左边位于上下边界上的点数(不包含在竖线上的点),on 阅读全文
posted @ 2017-03-09 22:17 dwtfukgv 阅读(160) 评论(0) 推荐(0)
UVaLive 3695 City Game (扫描线)

摘要:题意:给定m*n的矩阵,有的是空地有的是墙,找出一个面积最大的子矩阵。 析:如果暴力,一定会超时的。我们可以使用扫描线,up[i][j] 表示从(i, j)向上可以到达的最高高度,left[i][j]表示(i, j) 的左边界,right[i][j]右边界。 这三个可以用递推来实现。从向下扫描,每次 阅读全文
posted @ 2017-03-09 13:47 dwtfukgv 阅读(123) 评论(0) 推荐(0)
UVaLive 3905 Meteor (扫描线)

摘要:题意:给定上一个矩形照相机和 n 个流星,问你照相机最多能拍到多少个流星。 析:直接看,似乎很难解决,我们换一个思路,我们认为流星的轨迹就没有用的,我们可以记录每个流星每个流星在照相机中出现的时间段, 然后我们可以枚举时间段么?不行,这个是实数集上的,所以我们用扫描线,就相当于在x轴上有n个区间,我 阅读全文
posted @ 2017-03-07 19:33 dwtfukgv 阅读(140) 评论(0) 推荐(0)
UVaLive 3902 Network (无根树转有根树,贪心)

摘要:题意:一个树形网络,叶子是客户端,其他的是服务器。现在只有一台服务器提供服务,使得不超k的客户端流畅,但是其他的就不行了, 现在要在其他结点上安装服务器,使得所有的客户端都能流畅,问最少要几台。 析:首先这是一棵无根树,我们可以转成有根树,正好可以用原来的那台服务器当根,然后在不超过 k 的叶子结点 阅读全文
posted @ 2017-03-07 18:51 dwtfukgv 阅读(227) 评论(0) 推荐(0)

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