将陆续上传本人写的新书《自己动手写CPU》,今天是第36篇,我尽量每周四篇开展晒书评送书活动,在亚马逊、京东、当当三大图书站点上,发表《自己动手写CPU》书评的前十名读者,均可获赠《步步惊芯——软核处理器内部设计分析》一书,大家踊跃參与吧!活动时间:2014-9-11至2014-10-208.4.3...
分类:
其他好文 时间:
2014-10-20 19:03:36
阅读次数:
298
第一题:题目大意:求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数。N,M<=5000。解题过程:1.看到N,M的范围就明确肯定不会是dp,因为起码要用二维表示状态,就算转移是O(1),也要5000*5000的时间,况且还要高精度,绝对超时。2.于是想到可以根据...
分类:
其他好文 时间:
2014-10-20 17:03:16
阅读次数:
249
一、基本概念
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
二、基本思想与策略
基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有...
分类:
编程语言 时间:
2014-10-20 15:08:21
阅读次数:
211
http://acm.nyist.net/JudgeOnline/problem.php?pid=737石子归并:先枚举要合并的区间长,然后枚举相应的区间左端点,最后枚举区间中间的划分点,这样,就可以由小到大递推解决区间问题了。转移方程:dp[i][j]=min(dp[i][j],dp[i][k]+...
分类:
其他好文 时间:
2014-10-20 09:50:04
阅读次数:
249
DP:
DP[len][k][i][j] 再第len位,第一个数len位为i,第二个数len位为j,和的第len位为k
每一位可以从后面一位转移过来,可以进位也可以不进位
A Famous Equation
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Tot...
分类:
其他好文 时间:
2014-10-19 23:21:56
阅读次数:
294
题目链接:
huangjing
题意:给出一幅图,图中有一些点,然后从第1个点出发,然后途径所有有石头的点,最后回到原点,然后求最小距离。当初作比赛的时候不知道这就是旅行商经典问题。回来学了一下。
思路:
状态转移方程
DP[k][i|base[k]]=min(DP[k][i|base[k]],DP[j][i]+dis[j][k])
DP[J][I]表示从起点到j点在i状态下的最小距离...
分类:
系统相关 时间:
2014-10-19 23:17:06
阅读次数:
397
字符输入问题,刚开始没有考虑到shift+字符输入和当前大小写锁定状态相反状态字符只需要两步的问题。
状态转移方程:dp1[i]表示输入完第i个字符后为大写状态需要的步数 dp2[i]表示输入完第i个字符后为小写状态所需要的步数
如果第i个字符为小写:
dp1[i]=min(dp1[i-1]+2,dp2[i-1]+2);
dp2[i]=min(dp1[i-1]+2,dp2[i-1]+1);...
分类:
其他好文 时间:
2014-10-19 18:39:15
阅读次数:
198
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3829
题意:动物园有n条狗,m头猫,p个小孩,每个小孩有一个喜欢的动物和讨厌的动物,现在动物园要转移一些动物,如果一个小孩喜欢的动物在,不喜欢的动物不在,他就会happy,问动物最多能使几个小孩happy。
思路:一个比较明显的二分图,不能以猫狗为顶点,那样找到的是哪些动物会转移,以小孩为顶点...
分类:
其他好文 时间:
2014-10-18 21:00:16
阅读次数:
160
题目大意:求使连续子序列的和最大的第一元素,最后一个元素和子序列的和
思路:动态规划的方法,主要是找到状态转移方程。将之前累加和加上当前值
与当前值做比较, 如果将之前累加和加上当前值>当前值,那么加上当前值,
最后一个元素变为i,如果将之前累加和加上当前值<当前值,那么sum[i] = a[i]
,并且改变第一元素为i,最后元素为i。具体看代码。
状态转移方程:sum[i]=max(sum[i-1]+a[i],a[i]);...
分类:
其他好文 时间:
2014-10-17 22:01:12
阅读次数:
236
题目大意:求使连续子序列的和最大的第一元素,最后一个元素位置,和子序列
的和
思路:动态规划的方法,主要是找到状态转移方程。将之前累加和加上当前值
与当前值做比较, 如果将之前累加和加上当前值>当前值,那么加上当前值,
最后一个元素位置变为i,如果将之前累加和加上当前值<当前值,那么sum[i] =
a[i],并且改变第一元素位置为i,最后元素位置为i。具体看代码。
状态转移方程:sum[i]=max(sum[i-1]+a[i],a[i]);...
分类:
其他好文 时间:
2014-10-17 22:00:36
阅读次数:
241