UVa 10943 How do you add?【递推】】的更多相关文章

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1884 题目大意: 把K个不超过N的非负整数加起来,使得他们的和为N,有多少种方法?比如N=5,K=2,有6种方法.即0+5,1+4,2+3,3+2,4+1,5+0. 输入N和K,求方法总数除以10^6的余数 思路: 递推,从(n-1,k)种的解+上1不就是答案了么?同理从(n,k-1)中加上…
题目:UVA - 590Always on the run(递推) 题目大意:有一个小偷如今在计划着逃跑的路线,可是又想省机票费. 他刚開始在城市1,必须K天都在这N个城市里跑来跑去.最后一天达到城市N.问如何计划路线的得到最少的费用. 解题思路:一開始题目意思就理解有些问题. dp[k][i]:代表在第k天小偷从某一个城市(除了i)坐飞机飞到城市i(到达城市i也是在这一天). 第k天的话,就看这一天坐哪个航班,加上之前的费用是最小的,就选这个方法. 然后k+ 1天就又是由第k天推出来的. 状态…
UVa 926 题意:给定N*N的街道图和起始点,有些街道不能走,问从起点到终点有多少种走法. 很基础的dp.递推,但是有两个地方需要注意,在标记当前点某个方向不能走时,也要同时标记对应方向上的对应点.另一点就是要开long long存.要是不考虑障碍的话,按组合数算从(1,1)走到(n,n)需要2*n步,东.北方向各走n步,结果就是C(n/2,n),这个结果会很大!!! #include<iostream> #include<cstdio> #include<cstring…
UVa 825 题意:给定一个网格图(街道图),其中有一些交叉路口点不能走.问从西北角走到东南角最短走法有多少种.(好像没看到给数据范围...) 简单的递推吧,当然也就是最简单的动归了.显然最短路长度就是row+col.求种数就从开始往后推. 由于第一行第一列也有可能是障碍点,所以初始化时要注意这一点,或者干脆就只初始化f[0][1]=1.i.j都从1开始递推到更方便.还有题目输入输出比较坑.输入我用的是sstream和stream,方便很多,要不还要按照字符串输入再手动转化成数字.输出让每组隔…
题意:给出n,k,问恰好有k个不超过n的数的和为n的方案数有多少 可以隔板法来做 现在有n个小球放到k个盒子里面,盒子可以为空 那么就是n-k+1个缝隙,放上k-1个隔板(k-1个隔板就分成了k份) 所以总的方案数为 C(n+k-1,k-1) 所以可以转化为C(i,j)=C(i-1,j)+C(i,j-1) 即为d[i][j]=d[i-1][j]+d[i][j-1], d[i][j]表示j个数的和恰为i的方案数 #include<iostream> #include<cstdio>…
Larry is very bad at math — he usually uses a calculator, whichworked well throughout college. Unforunately, he is now struck ina deserted island with his good buddy Ryan after a snowboardingaccident.They’re now trying to spend some time figuring out…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1229 题意: 大街上到处在卖彩票,一元钱一张.购买撕开它上面的锡箔,你会看到一个漂亮的图案.图案有n种,如果你收集到所有n(n≤33)种彩票,就可以得大奖.请问,在平均情况下,需要买多少张彩票才能得到大奖呢?如n=5时答案为137/12. 分析: 已有k个图案,令s=k/n,拿一个…
设函数 f(k)(n); 则: f(1)(n)=1; f(2)(n)=f(1)(0)+f(1)(1)+f(1)(2)+...+f(1)(n); f(3)(n)=f(2)(0)+f(2)(1)+f(2)(2)+...+f(2)(n); . . . f(k)(n)=f(k-1)(0)+f(k-1)(1)+...+f(k-1)(n); 可预处理. 附代码: #include <iostream> #include <cstring> using namespace std; int ma…
id=19208">题目:Optimal Array Multiplication Sequence 题目大意:给出N个矩阵相乘.求这些矩阵相乘乘法次数最少的顺序. 解题思路:矩阵相乘不满足交换率但满足结合率.dp[i][j] 代表第1个矩阵到第j个矩阵之间的最少的乘法次数,转移状态方程:dp[i][j] = Min(dp[i][k] + dp[k + 1][j]  + A[i - 1] * A[k] *A[j]) k>= i && k <= j - 1.A0A…
C. How Many... in 3D! Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java class name: Main Submit                 Status                 PID: 20864               [PDF Link] Problem C: How Many... in 3D! Given a 2x2xN bo…