摘要:
这里一看就是找箱子到终点的最短路一开始还傻傻的以为人的位置给的很没有意思- -,然后果然错了没过多久想明白了错误,因为你推箱子并不是你想去哪里推就能去哪推的,首先得考虑人能否过的去,因为可能人被箱子或墙挡住都是可能的虽然想明白了,但还是写了好久改了好久~~代码能力还是太渣了利用dfs判定人能否走到所... 阅读全文
摘要:
题目大意:从三维空间的(0,0,0)出发到(a-1,b-1,c-1),每移动一个都要时间加一,计算最短时间根据六个方向,开个bfs,像spfa那样计算最短路径就行了,但是要1200多ms,也不知道有没有更好的方法 1 #include 2 #include 3 #include 4 #incl... 阅读全文
摘要:
题目大意:我们需要将一串数字分成多个确定个数的连续段,在得到所有段的和的最大值定义一个dp[i][j]数组表示在前j个数中取满 i 个段所能得到的最大值那么也就是说明在这道题目当中每一段都是必须要被取到的能够取到的前提是 j >= cnt[i] //表示前 i 段的数字个数总和sum[i] 表示前 ... 阅读全文
摘要:
用bellman_ford的方法,将中间不断取较小值,修改为取较大值就可以了 1 #include 2 #include 3 #include 4 using namespace std; 5 const int N = 105; 6 int dp[N] , k , first[N] , va... 阅读全文
摘要:
题目大意是在魔方上找到有多少对小立方块它们之间连接的点不超过两个因为任意两个立方块之间相连的点就只有0,1,2,4 这样4种情况那么我们只需要考虑总共的组成立方块对数sum = C(2 , n*n*n) = (n*n*n*(n*n*n-1))/2 在n*n*n个立方块中任选两个组合然后减去邻接4个点... 阅读全文
摘要:
题目大意:根据学校的申请费用,根据已有的钱得到最大的offer率这里很明显就是一个价值为概率的背包问题计算两个offer合并的概率 为a + b - a*b 1 #include 2 #include 3 #include 4 using namespace std; 5 const int ... 阅读全文
摘要:
题目大意:在0~10这11个点上面接饼 , 每秒最多往左或往移动一格,或者保持原地不动令dp[i][j]表示在第 i 秒在 第 j 个点上最多能得到的饼的数量dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1] , dp[i-1][j+1]) + a[i][j] //a[... 阅读全文
摘要:
1 #include 2 #include 3 4 using namespace std; 5 const int N = 1005; 6 #define max(a,b) a>b?a:b 7 8 char a[N] , b[N]; 9 int dp[N][N];10 11 int ma... 阅读全文