• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 58 下一页
2016年10月13日
CodeForces 55D Beautiful numbers (数位DP)
摘要: 题意:给求给定区间中该数能整除每一位的数的数量。 析:dp[i][j][k] 表示前 i 位,取模2520为 j,最小倍数是 k,但是这样,数组开不下啊,那怎么办呢,其实,0-9的最小公倍数的不同各类并没有那么多, 其实就48种,所以我们可以给这48个一个编号,然后就能开出来了。 代码如下: 阅读全文
posted @ 2016-10-13 22:17 dwtfukgv 阅读(193) 评论(0) 推荐(0)
2016年10月10日
HDU 4352 XHXJ's LIS (数位DP+LIS+状态压缩)
摘要: 题意:给定一个区间,让你求在这个区间里的满足LIS为 k 的数的数量。 析:数位DP,dp[i][j][k] 由于 k 最多是10,所以考虑是用状态压缩,表示 前 i 位,长度为 j,状态为 k的数量有多少,再结合nlogn的LIS, 就能搞定这个题目了。 代码如下: 阅读全文
posted @ 2016-10-10 21:06 dwtfukgv 阅读(241) 评论(0) 推荐(0)
2016年10月7日
UVaLive 6680 Join the Conversation (DP)
摘要: 题意:给出n条发言,让你求最大的交流长度并输出标记顺序。 析:这个题要知道的是,前面的人是不能at后面的人,只能由后面的人at前面的,那就简单了,我们只要更新每一层的最大值就好,并不会影响到其他层。 最后再从这 n 层中取出最大值,在更新时,也可以记录着最大值。 代码如下: 阅读全文
posted @ 2016-10-07 21:28 dwtfukgv 阅读(222) 评论(0) 推荐(0)
2016年10月6日
HDU 4055 Number String (计数DP)
摘要: 题意:由数字1到n组成的所有排列中,问满足题目所给的n-1个字符的排列有多少个,如果第i字符是‘I’表示排列中的第i-1个数是小于第i个数的。 如果是‘D’,则反之。 析:dp[i][j] 表示前 i 个数以 j 结尾有多少个,然后如果是 I ,那么就好,就是 i-1 中的前j-1项和,如果是 D, 阅读全文
posted @ 2016-10-06 22:48 dwtfukgv 阅读(261) 评论(0) 推荐(0)
HDU 3853 LOOPS (期望DP)
摘要: 题意:给定一个 n * m的矩阵,然后你从 (1,1)到 (n,m),每次你有三种可能,不动,向右,向下,每次要消耗2个魔法,并且给定每个概率, 问你走出去的期望。 析:dp[i][j] 表示从 (i,j)到终点的概率。然后一路逆推回去就好。 代码如下: 阅读全文
posted @ 2016-10-06 21:49 dwtfukgv 阅读(217) 评论(0) 推荐(0)
HDU 4734 F(x) (数位DP)
摘要: 题意:给定 F(x)的不表达,给定一个 n 问 1- n中有多少数是小于等于 F(m)的。 析:dp[i][j] 表示前 i 位不大于 j 个的数量。 代码如下: 阅读全文
posted @ 2016-10-06 21:43 dwtfukgv 阅读(364) 评论(0) 推荐(0)
HDU 2196 Computer (树形DP)
摘要: 题意:给定一棵树,然后让你找出每个结点离所有结点的最远距离。 析:也就说我们要知道离每个结点的最远距离,对于每个结点,我们知道离它最远的,要么是从父结点过来,要么是从子树中得到,dp[i][0] 表示从 i 子树中得到的 最远距离,dp[i][1] 表示 i 从子树得到的次远距离,dp[i][2] 阅读全文
posted @ 2016-10-06 21:39 dwtfukgv 阅读(212) 评论(0) 推荐(0)
HDU 4756 Install Air Conditioning (MST+树形DP)
摘要: 题意:n-1个宿舍,1个供电站,n个位置每两个位置都有边相连,其中有一条边不能连,求n个位置连通的最小花费的最大值。 析:因为要连通,还要权值最小,所以就是MST了,然后就是改变一条边,然后去找出改变哪条能使得总花费最大,dp[i][j] 表示那条边左边的 i 和右边的 j, 最短距离,然后枚举MS 阅读全文
posted @ 2016-10-06 21:26 dwtfukgv 阅读(233) 评论(0) 推荐(0)
HDU 4126 Genghis Khan the Conqueror (树形DP+MST)
摘要: 题意:给一图,n个点,m条边,每条边有个花费,给出q条可疑的边,每条边有新的花费,每条可疑的边出现的概率相同,求不能经过原来可疑边 (可以经过可疑边新的花费构建的边),注意每次只出现一条可疑的边,n个点相互连通的最小花费的期望。 析:要想连通先让他们连通起来,先构造出一个MST,然后再暴力,如果这个 阅读全文
posted @ 2016-10-06 21:20 dwtfukgv 阅读(244) 评论(0) 推荐(0)
HDU 4714 Tree2cycle (树形DP)
摘要: 题意:给定一棵树,断开一条边或者接上一条边都要花费 1,问你花费最少把这棵树就成一个环。 析:树形DP,想一想,要想把一棵树变成一个环,那么就要把一些枝枝叶叶都换掉,对于一个分叉是大于等于2的我们一定要把它从父结点上剪下来是最优的, 因为如果这样剪下来再粘上花费是2(先不管另一端),如果分别剪下来再 阅读全文
posted @ 2016-10-06 21:09 dwtfukgv 阅读(262) 评论(0) 推荐(0)
HDU 1159 Common Subsequence (LCS)
摘要: 题意:给定两行字符串,求最长公共子序列。 析:dp[i][j] 表示第一串以 i 个结尾和第二个串以 j 个结尾,最长公共子序列,剩下的就简单了。 代码如下: 阅读全文
posted @ 2016-10-06 21:01 dwtfukgv 阅读(215) 评论(0) 推荐(0)
HDU 2159 FATE (二维背包)
摘要: 题意:中文题。 析:dp[i][j] 已经杀了 i 个怪兽,已经用了 j 体积,所能获得的最大经验值,这个和一维的差不多,只是加一维而已。 代码如下: 阅读全文
posted @ 2016-10-06 20:56 dwtfukgv 阅读(282) 评论(0) 推荐(0)
HDU 2602 Bone Collector (01背包DP)
摘要: 题意:给定一个体积,和一些物品的价值和体积,问你最大的价值。 析:最基础的01背包,dp[i] 表示体积 i 时最大价值。 代码如下: 阅读全文
posted @ 2016-10-06 20:50 dwtfukgv 阅读(194) 评论(0) 推荐(0)
2016年10月4日
HDU 5918 Sequence I (KMP)
摘要: 题意:给定一个序列,a1, a2, a3 ..., an 还有一个序列是 b1, b2, b3 .. bm,问你有多个 q,使得 aq, aq+p, aq+2p, ... aq+(m-1)p。 析:很容易看出来,就是每隔 p算一个序列有多少个匹配。KMP 裸版。 代码如下: 阅读全文
posted @ 2016-10-04 20:52 dwtfukgv 阅读(207) 评论(0) 推荐(0)
HDU 5916 Harmonic Value Description (构造)
摘要: 题意:给你 n 和 m,求一个1-n的排列,使得∑gcd(Ai,Ai+1) 恰为第 m 小. 析:可以想到最小的就是相邻都互质,然后依次,第 m 小就可以有一个是gcd为 k,然后其他的为1喽。 那么我们就可以想到把 m 和2*m 拿出来,然后让其他的都相邻,那么就一定是gcd为1. 代码如下: 阅读全文
posted @ 2016-10-04 20:49 dwtfukgv 阅读(147) 评论(0) 推荐(0)
HDU 2914 Triangle (Fibnacci 数)
摘要: 题意:给你一个长度为 n 的木棒,求至少拿掉几根使得剩余的木棒构成不了三角形。 析:为了保证不形成三角形,所以保证两边之和等于最大边是最优,这不就是Fibnacci 数么,由于 n 很小,if-else 就好。 代码如下: 阅读全文
posted @ 2016-10-04 20:38 dwtfukgv 阅读(182) 评论(0) 推荐(0)
HDU 5912 Fraction (模拟)
摘要: 题意:给定一个分式,让你化简。 析:从分母开始模拟分数的算法,最后约分。 代码如下: 阅读全文
posted @ 2016-10-04 20:35 dwtfukgv 阅读(169) 评论(0) 推荐(0)
CodeForces 722C Destroying Array (并查集)
摘要: 题意:给定 n 个数,然后每次破坏一个位置的数,那么剩下的连通块的和最大是多少。 析:用并查集来做,从后往前推,一开始什么也没有,如果破坏一个,那么我们就加上一个,然后判断它左右两侧是不是存在,如果存在,那么就合并起来, 然后不断最大值,因为这个最大值肯定是不递减,所以我们一直更新就好。 代码如下: 阅读全文
posted @ 2016-10-04 10:22 dwtfukgv 阅读(610) 评论(0) 推荐(0)
CodeForces 722B Verse Pattern (水题)
摘要: 题意:统计元音,这里多加一个元音,y。 析:直接统计就好了。 代码如下: 阅读全文
posted @ 2016-10-04 10:18 dwtfukgv 阅读(287) 评论(0) 推荐(0)
CodeForces 722A Broken Clock (水题)
摘要: 题意:给定一个时间,然后改最少的数字,使得它成为12进制或者24进制。 析:24进制主要判是不是大于23,如果是把第一位变成0,12进制判是不是大于12,如果是再看第二位是不是0,是0,第一位变成1,不是第一位变成0, 如果等于0,第一位变成1,至于分钟,只要判是不是大于59,是把第一位变成0. 代 阅读全文
posted @ 2016-10-04 10:16 dwtfukgv 阅读(239) 评论(0) 推荐(0)
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 58 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3