摘要:
/*dp[i][j]:=从出发点(x1,y1)到点(i,j)的合法路径条数初始化: dp[][]={0} dp[x1][y1]=1状态方程: 根据马跳的位置推出: dp[i][j]=dp[i-1][j+2]+dp[i-1][j-2]+dp[i-2][j+1]+dp[i-2][j-1]答案:dp[x2... 阅读全文
摘要:
/*这道题要解决两个问题 1)状态和状态方程 2)怎么保证每走一步,所形成的路径不相交,以保证最后生成的完整路径不相交。 (1)状态:dp[i][j][k][l]=小渊传递的纸条到[i][j]的位置,小轩传递的纸条到[k][l]的位置时,好心程度和的最大值。 (2)状态方程:看到题目,直接的想法... 阅读全文
摘要:
/*dp[i][j]:=从起点[0][0]到坐标为[i][j]的位置,路径的条数。 卒行走规则:可以向下、或者向右,故dp[i][j]=dp[i-1][j]+dp[i][j-1] (向下)(向右) 注意:去掉对方马的控制点 附:codevs测试数据有些弱,可以考虑到这里评测一下... 阅读全文
摘要:
/*分析:对于n行输入,各行之间是独立的,只需要找到各行的最大值,它们的和即为答案。由于:1高精度计算 dp[i][j]:=每行取第i到j个数可得到的最大值。对于输入的任一行a[m],第x次取数的状态转移为:dp[i][j]=2*max(dp[i+1][j]+arr[i],dp[i][j-1]+ar... 阅读全文
摘要:
/*思路同:CODE[VS]1048石子归并dp[i][k]:=i到k的珠子,所能获得的最大能量dp[i][k]=max(dp[i][k],dp[i][j]+dp[j+1][i+k]+arr[i]*arr[j+1]*arr[i+k+1]) 注意:此题为循环“石子归并”,空间开为两倍(将循环转换为线性... 阅读全文
摘要:
/*给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。*/#define _CRT_SECURE_NO_WARNINGS//#define HOME#include #include #include #include #include #inclu... 阅读全文
摘要:
dp[i][j] : i到j,最小代价 dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + sum[i][j]) (注:i 3 #include 4 #include 5 #include 6 #include 7 #include 8 us... 阅读全文
摘要:
3115 高精度练习之减法: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #i... 阅读全文
摘要:
O(n^2): 1 /* 2 3 最长严格上升子序列 4 dp[i] : 以第i个整数结尾的最长严格上升子序列长度 5 dp[i] = max(dp[x]) + 1 6 注: x 12 #include 13 #include 14 #include 15 #include 16 #include... 阅读全文
摘要:
arr[i]:表示每个牌堆的纸牌的数目平均值:当纸牌数都一样多时,纸牌的数目 从左向右考虑,每堆纸牌有三种状态:1)arr[i]==平均值,考虑arr[i+1]2)arr[i]移动纸牌数:(平均值-arr[i])张注: 考虑此时,arr[i]缺牌,那么i右边的牌堆必然多牌,无论哪堆多牌,必然有由ar... 阅读全文