会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
KYSpring
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2018年4月25日
POJ-1038 Bugs Integrated, Inc. (状压+滚动数组+深搜 的动态规划)
摘要: 本题的题眼很明显,N (1 <= N <= 150), M (1 <= M <= 10),摆明了是想让你用状态压缩dp。 整个思路如下:由于要填2*3或者3*2的芯片,那么就要找一个策略来判断到底能不能填。 精华1在此: 找到的策略是,记格子(i,j)的状态有三种: 状态0代表(i,j)和(i-1,
阅读全文
posted @ 2018-04-25 18:00 KYSpring
阅读(294)
评论(0)
推荐(0)
2018年4月23日
poj_3071 Football(概率dp)
摘要: 直接上状态转移方程: 记dp[i][j]为第i轮比赛,第j个队伍获胜的概率。 那么初始状态下,dp[0][j]=1;//也就是第0轮比赛全都获胜 d[i][j]=sum(d[i-1][j]*d[i-1][k]*win[j][k])//也就是找到所有可能与j队在第i轮对决的k队,那么i队战胜k队的概率
阅读全文
posted @ 2018-04-23 10:15 KYSpring
阅读(115)
评论(0)
推荐(0)
2018年4月22日
hdu_2048 错排问题
摘要: 错排问题本质上就是一个动态规划问题,其状态转移方程为: 记d[n]为n个人错排情况的总数。 那么策略可以描述为:分析第n个人错排的可能情况: 1)前n-1个人满足错排的情况,那么第n个人加入后还要错排意味着第n个人与前n-1个人里的任意一个交换字条(共有n-1种交换法) 2)若前n-1个人并不满足错
阅读全文
posted @ 2018-04-22 17:12 KYSpring
阅读(119)
评论(0)
推荐(0)
2018年4月11日
POJ - 1463 Strategic game (树状动态规划)
摘要: 这题做的心塞。。。 整个思路非常清晰,d[i][0]表示第i个结点不设置监察的情况下至少需要的数量;d[i][1]表示第i个结点设置检查的情况下的最小需要的数量。 状态转移方程见代码。 但是万万没想到的是,在实现过程中修改了4遍代码,wa了若干次才AC。。。。 下面来总结一下各种wa代码: 版本1:
阅读全文
posted @ 2018-04-11 16:07 KYSpring
阅读(258)
评论(0)
推荐(0)
POJ2533_Longest Ordered Subsequence (线性动态规划变形)
摘要: 本题求一个字符串中的最长递增子序列的长度。 动态规划方程 a[]记录字符串; d[i]记录以第i个元素为最后一个元素的最长递增序列的长度 则 d[i+1]=1+max(d[j]) 其中(j<i+1)并且a[j]<a[i+1]。 这样的话,没更新一个d[i+1],都需要搜索一遍前i项,因而此时复杂度为
阅读全文
posted @ 2018-04-11 09:09 KYSpring
阅读(145)
评论(0)
推荐(0)
2018年4月10日
POJ_1159 Palindrome (线性动态规划+滚动数组)
摘要: 题意是说,给定一个字符串,问至少还需要插入多少个字符才能使得该字符串成为回文字符串。 这道题一开始做的时候用了一个简单的动态规划,开了一个5000*5000的数组,用递归形式实现,代码如下: 其中d[i][j]表示i到j所需要插入的字符数。然而数组开得太大直接报MLE。因此想到用滚动数组来解决。 M
阅读全文
posted @ 2018-04-10 22:22 KYSpring
阅读(174)
评论(0)
推荐(0)
2018年4月7日
POJ-1458 LCS(线性动态规划)
摘要: 此题经典线性动态规划。 代码如下:
阅读全文
posted @ 2018-04-07 22:05 KYSpring
阅读(90)
评论(0)
推荐(0)
POJ-2479 Maximum sum(动态规划)
摘要: 最大子序列和的加强版。 借助最大子序列和,分别正向和反向遍历一遍得到left和right数组(具体含义见代码注释) 然后再对left和right数组进行修正,保存从对应元素起向左或向右的最大连续和。 最后再次遍历一遍得到最大的ans。 AC代码如下:
阅读全文
posted @ 2018-04-07 21:47 KYSpring
阅读(519)
评论(0)
推荐(0)
POJ-2418 Hardwood Species(二叉搜索树)
摘要: 思路就是先将每个单词存进二叉树中,没出现一次,修改该单词所在结点的cnt++; 最后通过递归中序遍历输出结果。 思路很清晰,主要注意一下指针的使用,想一想为什么要这么用? 简单的解释就是,insert函数修改的是指针的属性而不是指针指向的目标地址内容的属性。 代码:
阅读全文
posted @ 2018-04-07 17:21 KYSpring
阅读(289)
评论(0)
推荐(0)
poj_2528 Mayor's posters (线段树经典题+离散化方法)
摘要: 由于题面中给定的wall最大长度为10 000 000;若简单用线段树势必会超时。 而注意到题面中规定了输入海报的个数<=1000;因此不妨离散化,使得线段中叶节点仅含有1000个,那么线段最大深度为10,不会TLE。 同时在构造线段树的时候除了设置基本的长度变量l,r之外, 设置了一个新的变量ki
阅读全文
posted @ 2018-04-07 14:44 KYSpring
阅读(128)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告