摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978思路:从右到左、从下到上递推。设dp[i][j]为dp[i0][j0]可达的点,则dp[i0][j0] += dp[i][j];PS:每个点可达的区域都是一个三角形,如图:1#include2#include3#defineN10545inta[N][N],dp[N][N];67intmain()8{9intn,m,t;10scanf("%d",&t);11while(t--)12{13scanf("%d%d",&n,&m);14 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577题意:给一串只含大小写字母的字符串,问从键盘打出这个字符串最小需要按多少次按键?(可用Shift和Cap lock,初始Cap lock是关闭的,最终的状态Cap lock也必须是关闭的)思路:利用DP可以很方便地解决。dp[i][]表示打印完第i个字符最少需要的按键次数。dp[i][0]时表示打印完第i个字符Cap lock是关闭的。dp[i][1]时表示打印完第i个字符Cap lock是开启的。很容易得出状态转移方程。具体:第i个字母是大写: dp[i][0] = min(dp[i-1][ 阅读全文