UVa 1638 Pole Arrangement (递推或DP)】的更多相关文章

题意:有高为1,2,3...n的杆子各一根排成一行,从左边能看到L根,从右边能看到R根,求杆子的排列有多少种可能. 析:设d(i, j, k)表示高度为1-i的杆子排成一行,从左边看到j根,从右边看到k根的数目.当i>1时,我们按照从大到小的顺序按排杆子, 假设已经安排完i-1根了,那么还剩下一根就是高度为1的了,那么它放在哪都不会挡住任何一根杆子.情况有3种: 1.放在左边,那么在左边一定能够看到它,在右边看不到(因为i>1): 2.放在右边,那么在右边一定能够看到它,在左边看不到(因为i&…
题意:给出n根高度为1,2,3,---n的杆子,从左边能看到l根,右边能够看到r根,问有多少种可能 看的紫书的思路 先假设已经安排好了高度为2---i的杆子, 那么高度为1的杆子的放置方法有三种情况 放在最左边:从左边看得见,右边看不见 放在最右边:从右边看得见,左边看不见 放在中间,有i-2个空位可以插,左右都看不见 所以可以写出递推关系: d[i][j][k]=d[i-1][j-1][k]+d[i-1][j][k-1]+d[i-1][j][k]*(i-2); #include<iostrea…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4513 题意: 有高为1, 2, 3,…, n的杆子各一根排成一行.从左边能看到L根,从右边能看到R根,求有多少种可能. 分析: 设d(i,j,k)表示让高度为1-i的杆子排成一行,从左边能看到j根,从右边能看到k根的方案数(设i≥2).按照从大到小的顺序安排各个杆子.假设已经安排完…
题意:有n个长度为1到n的柱子排列在一起,从左边看有l根从右边看有r根,问你所以排列中满足这种情况的方案数 题解:就是一个dp问题,关键是下标放什么,值代表什么 使用三维dp,dp[i][j][k]=l; i:从左边看的个数,j:从右边看的个数,k:后k根柱子,l:方案数 可以这样想:每次加上去的是比当前最小柱子小一的柱子,这样就可以发现,这根柱子放在k个位置都很好判断 即:dp[i][j][k]=dp[i-1][j][k-1](放在最左边)+dp[i][j-1][k-1](放在最右边)+dp[…
https://vjudge.net/problem/UVA-1638 题意: n根长度分别为1,2,3,4……n的木棍 将这些木棍竖着排成一列 问从左边看能看到L根,从右边看能看到R根的方案数 将木棍从长到短放 dp[k][i][j] 表示再放第k根,从左边能看到i根,从右边能看到j根的方案数 放到最左边,从左边可以看到的木棍数+1 放到最右边,从右边可以看到的木棍数+1 放到中间,看到的木棍数不变 所以动态转移方程:dp[k][i][j]=dp[k-1][i-1][j]+dp[k-1][i]…
题目链接:http://codeforces.com/problemset/problem/676/B 递推,dp(i, j)表示第i层第j个杯子,从第一层开始向下倒,和数塔一样的题.每个杯子1个时间能倒满,从上开始向下倒时间为t,那每个杯子不满的时候对下面的贡献一定是0,所以当dp[i][j]>=1的时候,计数倒满的杯子并且将溢出的酒向下平分. /* ━━━━━┒ギリギリ♂ eye! ┓┏┓┏┓┃キリキリ♂ mind! ┛┗┛┗┛┃\○/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏┓┏┓┃ ┛┗…
这是在2016在长沙集训的第三天,一位学长讲解了“前缀和优化”这一技巧,并且他这一方法用的很6,个人觉得很有学习的必要. 这一技巧能使线性递推形DP的速度有着飞跃性的提升,从O(N2)优化到O(N)也不是不可能. 这一技巧的主要思想是使要加和的数据完全储存,并且在下一次计算中直接调用,所以你的对于DP当前项的查询无论是N还是logN,这一方法都能直接解决. 以一道题来作为我们的例子: openjudge9277    (cf 295D跟这题差不多,只是对比于这道题要加个高度,但不用优化) 分享出…
UVa 10446 求(n,bcak)递归次数.自己推出来了一个式子: 其实就是这个式子,但是不知道该怎么写,怕递归写法超时.其实直接递推就好,边界条件易得C(0,back)=1.C(1,back)=1. Reference Code: #include<iostream> #include<cstdio> using namespace std; typedef unsigned long long ll; ll dp[][]={}; int main() { int n,bac…
UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&problem=1229&mosmsg=Submission+received+with+ID+13896541" target="_blank" style="">题目链接 题意:n个张票,每张票取到概率等价,问连续取一定次数后,拥有全部的票的期…
总时间限制:  1000ms 内存限制:  65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的矩阵 0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2 的最大子矩阵是 9 2-4 1-1 8 这个子矩阵的大小是15. 输入 输入是一个N * N的矩阵.输入的第一行给出N (0 < N <= 100).再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给…