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

随笔分类 -  思维

上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
UVa 1335 Beijing Guards (二分+贪心)

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

摘要:题意:给定一个无向无环图,要在一些顶点上放灯使得每条边都能被照亮,问灯的最少数,并且被两盏灯照亮边数尽量多。 析:其实就是一个森林,由于是独立的,所以我们可以单独来看每棵树,dp[i][0] 表示不在 i 点放灯,dp[i][1] 表示在 i 点放灯,很简单的一个DP 代码如下: 阅读全文
posted @ 2017-03-10 14:33 dwtfukgv 阅读(122) 评论(0) 推荐(0)
UVa 10755 Garbage Heap (暴力+前缀和)

摘要:题意:有个长方体由A*B*C组成,每个废料都有一个价值,要选一个子长方体,使得价值最大。 析:我们暴力枚举上下左右边界,然后用前缀和来快速得到另一个,然后就能得到长方体,每次维护一个最小值,然后差就是最大值。 代码如下: 阅读全文
posted @ 2017-03-09 22:24 dwtfukgv 阅读(149) 评论(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)
CodeForces 496D Tennis Game (暴力枚举)

摘要:题意:进行若干场比赛,每次比赛两人对决,赢的人得到1分,输的人不得分,先得到t分的人获胜,开始下场比赛,某个人率先赢下s场比赛时, 游戏结束。现在给出n次对决的记录,问可能的s和t有多少种,并按s递增的方式输出。 析:如果枚举s 和 t,那么一定会超时的,所以我们考虑是不是可以不用全枚举。我们只要枚 阅读全文
posted @ 2017-03-07 18:33 dwtfukgv 阅读(194) 评论(0) 推荐(0)
POJ 1703 Find them, Catch them (并查集)

摘要:题意:一共有N个人,给出M个操作分为两种: 1、A a b :提问a和b是否是同一个帮派的。有三种答案:是,不是和不确定 2、D a b :a和b不是同一个帮派的。 析:加权并查集,用一个r[i]来表示 i 和其父亲的关系,如果为0,表示 i 和其父亲是同一帮,1表示不是,每次更新即可。 代码如下: 阅读全文
posted @ 2017-03-06 20:54 dwtfukgv 阅读(145) 评论(0) 推荐(0)
POJ 2184 Cow Exhibition (01背包)

摘要:题意:每行给出si和fi,代表牛的两个属性,然后要求选出几头牛,是的则求出总S与总F的和,注意S与F都不能为负数 析:用dp[i]来表示存放s[i]的时最大的f[i],其实就是一个01背包。只是取不取的关系。注意是有负数,所以把数组开大一点,然后s[i]的正负数, 我们取的顺序不同,正数是逆向,负数 阅读全文
posted @ 2017-03-05 22:24 dwtfukgv 阅读(113) 评论(0) 推荐(0)
CodeForces 748C Santa Claus and Robot (思维)

摘要:题意:给定一个机器人的行走路线,求最少的点能使得机器人可以走这样的路线。 析:每次行走,记录一个方向向量,每次只有是相反方向时,才会增加一个点,最后再加上最后一个点即可。 代码如下: 阅读全文
posted @ 2017-03-05 15:13 dwtfukgv 阅读(215) 评论(0) 推荐(0)
CodeForces 671B Robin Hood (二分)

摘要:题意:n个人,每个人ci的金币,每天最富有的人都会给最贫穷的人1金币,问k天后最富有人和最贫穷的人差了多少金币。 析:首先先这样想,如果每个穷人每天获得一个金币,那么k天后,最穷的人的金币为x,同理,每个富人每天丢一枚金币,那么k天后最富的人金币为y, 那么如果 x < y那么y-x就是答案,否则就 阅读全文
posted @ 2017-03-02 14:01 dwtfukgv 阅读(206) 评论(0) 推荐(0)
POJ 3658 Artificial Lake (单调栈)

摘要:题意: 析:利用单调栈,维护一个单调递增的栈,首先在最低的平台开始,每次向两边进行扩展,寻找两边最低的,然后不断更新宽度。 代码如下: 阅读全文
posted @ 2017-03-02 12:21 dwtfukgv 阅读(153) 评论(0) 推荐(0)
UVa 1412 Fund Management (预处理+状压DP)

摘要:题意:题意很难说清楚自己看原文,链接:UVa 1412 Fund Management 析:总体来说如果没有超时的话,这个题不是特别难,但是这个题很容易超时,主要是体现在状态转移时,很容易想到状态方程表示方法, dp[i][s]表示第 i 天时状态为s时能获得的最大值,转移方程也很容易,三种决策,要 阅读全文
posted @ 2017-02-28 21:41 dwtfukgv 阅读(390) 评论(0) 推荐(0)
HDU 3706 Second My Problem First (单调队列)

摘要:题意:求给定的一个序列中最长子序列,该子序列的最大值和最小值介于m和k之间。 析:用两个单调队列来维护一个最小值,一个最大值,然后每次更新即可。 代码如下; 阅读全文
posted @ 2017-02-28 20:33 dwtfukgv 阅读(138) 评论(0) 推荐(0)
POJ 3662 Telephone Lines (二分+dijkstra)

摘要:题意: 多年以后,笨笨长大了,成为了电话线布置师。由于地震使得某市的电话线全部损坏,笨笨是负责接到震中市的负责人。 该市周围分布着N(1<=N<=1000)根据1……n顺序编号的废弃的电话线杆,任意两根线杆之间没有电话线连接,一共有p(1<=p<=10000)对电话杆可以拉电话线。 其他的由于地震使 阅读全文
posted @ 2017-02-26 21:46 dwtfukgv 阅读(181) 评论(0) 推荐(0)
UVa 12105 Bigger is Better (DP)

摘要:题意:用不超过 n 根火柴,组成一个尽可能大的数。 析:很明显的一个DP题,首先不难想到这个dp[i][j] 表示前 i 根火柴,所能拼出的取模 m 为 j 的数,状态转移方程也很好写, dp[i][j] ==> dp[i+c[k]][(j*10+k)%m] 其中 k 为在后面添加的数,c 数组是用 阅读全文
posted @ 2017-02-23 23:47 dwtfukgv 阅读(318) 评论(0) 推荐(0)
UVa 10795 A Different Task (递归)

摘要:题意:汉诺塔,给定一个初始局面,和一个目标局面,问你最少走多少步。 析:首先考虑最大的盘子,如果最大的盘子已经在相应的柱子上,那么就不用移动了,所以首先先找到要移动的最大盘子k,然后再移动最大的盘子,假设要把它从1移动到2, 那么我们先把1-k-1,移动到3号柱子上,这个局面称为参考局面,那么我们可 阅读全文
posted @ 2017-02-16 22:16 dwtfukgv 阅读(115) 评论(0) 推荐(0)
POJ 3419 Difference Is Beautiful (DP + 二分 + rmq)

摘要:题意:给n个数(n<=200000),每个数的绝对值不超过(10^6),有m个查询(m<=200000),每次查询区间[a,b]中连续的没有相同数的的最大长度。 析:由于n太大,无法暴力,也承受不了O(n*n)的复杂度,只能是O(nlogn),首先是用f[i] 表示每个数 i 为左端点,向右可以最多 阅读全文
posted @ 2017-01-31 20:52 dwtfukgv 阅读(198) 评论(0) 推荐(0)
CodeForces 754D Fedor and coupons (优先队列)

摘要:题意:给定n个优惠券,每张都有一定的优惠区间,然后要选k张,保证k张共同的优惠区间最大。 析:先把所有的优惠券按左端点排序,然后维护一个容量为k的优先队列,每次更新优先队列中的最小值,和当前的右端点, 之间的距离。优先队列只要存储右端点就好。 代码如下: 阅读全文
posted @ 2017-01-15 16:39 dwtfukgv 阅读(192) 评论(0) 推荐(0)
CodeForces 753C Interactive Bulls and Cows (Hard)

摘要:题意:。。。 析:随机判断就即可,每次把不正确的删除,经过几次后就基本剩不下了。 代码如下: 阅读全文
posted @ 2017-01-14 22:43 dwtfukgv 阅读(472) 评论(0) 推荐(0)
HDU 1270 小希的数表 (暴力枚举+数学)

摘要:题意:... 析:我们可以知道,a1+a2=b1,那么我们可以枚举a1,那么a2就有了,并且a1+a3=b2,所以a3就有了,我们再从把里面的剩下的数两两相加,并从b数组中去掉, 那么剩下的最小的就是a4,然后依次可以求出a5,a6....由于a最大才是5000,并且保证有唯一解,那么找到一个就直接 阅读全文
posted @ 2017-01-11 18:58 dwtfukgv 阅读(180) 评论(0) 推荐(0)

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