题意:求1-n的n个数字中1出现的个数。解法:数位dp,dp[pre][now][equa]
记录着第pre位为now,equa表示前边是否有降数字(即后边可不能够任意取,true为没降,true为已降);常规的记忆化搜索代码:/***********************************...
分类:
其他好文 时间:
2014-05-30 09:00:21
阅读次数:
232
http://acm.hdu.edu.cn/showproblem.php?pid=2833
大致题意:给定一个无向图,以及悟空和师傅起点与终点,求它们分别从起点到终点的最短路径中经过相同的点的最大个数。
思路:首先dijkstra求出最短路,那么如果有dis[a] + map[a][b] = dis[b],则边(a,b)一定在最短路径上。根据这一定理可以求出所有最短路径。然后...
分类:
其他好文 时间:
2014-05-22 13:00:41
阅读次数:
234
问题描述:
有n中硬币,面值分别为V1,V2...,Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值。0
分析:
本题的本质还是DAG上的路径问题。我们把每种面值看作一个点,表示"还需要凑足的面值",则初始状态为S,目标状态为0。若当前的状态i,每使用一个硬币j,状态便转移到i-Vj。这个模...
分类:
其他好文 时间:
2014-05-22 12:15:11
阅读次数:
266
UVA 10712 - Count the Numbers
题目链接
题意:求区间[A,B]数字中,子串包含N的数字有多少个
思路:数位DP,写了个记忆化乱搞搞过了,dp[i][j][2][2][2],分别表示i位的时候,末尾为j的情况,后面3维用来处理小于的情况,已经出现过子串的情况,前导0的情况,然后注意特判一下数字0的情况,因为一开始要分解数字,而0是不能分解的。
代...
分类:
其他好文 时间:
2014-05-21 09:11:44
阅读次数:
264
题意:一张n*m的网格内每个点有话费,还有若干个宝藏,问一个人要走进去拿走所有宝藏在走出来的最小花费。思路:看宝藏只有13个直接想到了状压dp[i][j]拿了哪几个前一个为j的最小花费,先bfs+优先队列预处理出最短路,然后记忆化搜索就可。代码如下:
1 /********************....
分类:
其他好文 时间:
2014-05-19 23:26:38
阅读次数:
352
数字三角形
描述:
有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外没个数的左下方
和右下方各有一个数。
问题:
从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数
全部加起来。如何走才能使得这个和尽量大?
分析:
不难看出此...
分类:
其他好文 时间:
2014-05-18 18:26:02
阅读次数:
299
有向无环图(DAG,Directed Acyclic Graph)上的动态规划是学习动态规划的基础。很多问题都可以转化为DAG上的最长路、最短路或路径计数问题。
题目描述:
有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a
分析:
矩形之间的"可嵌套"关系是一个典型的二元关...
分类:
其他好文 时间:
2014-05-18 07:20:52
阅读次数:
248
题目大意:
给出一个数n,求m,使得m的长度和n相等,能被k整除。有多个数符合条件输出与n在每位数字上改变次数最小的。改变次数相同的输出大小最小的。
共有三种解法:DP解法,记忆化搜索和DFS+强剪枝的算法。
后两种以后会更新。
1、DP解法:
解题思路:
DP[i][j]表示数n的前i位除以k余j最小改变几位。
DP[len][0]就表示数n被k整除最小改变几位。
根据这个...
分类:
其他好文 时间:
2014-05-18 06:02:56
阅读次数:
319
题目链接:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3681
E - Cup 2
Time Limit: 2 Seconds Memory Limit: 65536 KB
The European Cup final is coming. The past two World C...
分类:
其他好文 时间:
2014-05-15 14:56:27
阅读次数:
393