
dp
文章平均质量分 59
accepoc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CodeForces 474D Flowers (dp)
题意:白花只能以连续k个的方式出现,红花没有限制。给出t组询问,每组包含ai,bi,问当序列长度为ai到bi时的总方案数。例:若 K = 2 且长度=1 的情况: (R).若 K = 2 且长度=2 的情况: (RR), (WW).若 K = 2 且长度=3 的情况: (RRR), (RWW), (WWR).若 K = 2 且长度=4 的情况: (WWWW),原创 2015-01-06 21:29:51 · 758 阅读 · 0 评论 -
hdu2825 Wireless Password [AC自动机+状压dp]
Problem DescriptionLiyuan lives in a old apartment. One day, he suddenly found that there was a wireless network in the building. Liyuan did not know the password of the network, but he got some import原创 2015-06-04 11:14:50 · 685 阅读 · 0 评论 -
poj1191 棋盘分割 dp
本题黑书P116有详细讲解。思路:先把方差公式化简: σ2=1n∑i=1nx2i−(x¯)2\sigma^2 = \frac 1 n \sum_{i=1}^n x_i^2 - (\bar x)^2 其中平均数是一定的,就是方格里所有的数的和除以n,所以问题转化为将棋盘分成n个矩形,使每个矩形的总分的平方和最小。考虑左上角为(x1,y1),右下角为(x2,y2)的矩形: 设它的总分为s[x1,原创 2015-03-15 10:04:12 · 409 阅读 · 0 评论 -
hdu1520 Anniversary party (树形dp)
题意:每个节点有一个权值,父亲和儿子不能同时选,问最大权值。思路:dp[i][0]表示i为根,且i不选的最大权值,dp[i][1]表示i为根,且i选的最大权值。枚举每一个i的孩子j:dp[i][0] = ∑max(dp[j][0], dp[j][1])dp[i][1] = ∑dp[j][0]代码:#include #include #include #原创 2015-01-04 11:43:23 · 473 阅读 · 0 评论 -
hdu2059 龟兔赛跑 (dp)
dp[i]表示到第i个加油站的最短时间。dp[i] = max(dp[j] + tim[j]) (0 tim[j]表示在点j加满油到i的时间。dp[n+1]就是答案。代码:#include #include #include #include using namespace std;int L;int N, C, T;int VR, VT1, VT2;int原创 2014-12-30 20:21:42 · 500 阅读 · 0 评论 -
hdu1505 City Game (单调栈)
1506的增强版。up[i][j]记录(i,j)向上能扩展的高度,剩下的同1506。arr[i][j] == 'F':up[i][j] = up[i - 1][j] + 1arr[i][j] == 'R:up[i][j] = 0代码(156MS,5120K):#include #include #include #include #include using n原创 2014-12-27 10:34:24 · 495 阅读 · 0 评论 -
hdu1506 Largest Rectangle in a Histogram (单调栈)
lef[i],rig[i]分别保存第i个矩形向左和向右分别能扩展多远。以向右扩展为例:从左向右枚举每一个矩形i,如果高度height[i]大于等于栈顶元素的高度或栈为空,入栈。若height[i]=s.top().height。则每一次弹出的元素,向右最多能扩展到i。然后将i入栈。枚举完了之后栈可能非空,则栈中元素一定可以扩展到最右。最后(lef[i] + rig[i] -原创 2014-12-27 09:58:50 · 485 阅读 · 0 评论 -
hdu1693 Eat the Trees (插头dp)
题意:n*m的矩阵,1表示可走,0表示障碍,找出一条或多条回路每个可走的点恰好走一次,问方法数。思路:因为允许多条回路,所以不需要考虑插头是左括号还是右括号,可以用2进制表示插头。用滚动数组实现,为了节约空间。还有航电上一定要用%I64d,害得我%lld交WA了无数次。代码(0MS, 1472K):#include #include #include #inclu原创 2014-12-26 12:15:49 · 520 阅读 · 0 评论 -
USACO6.1.1 Postal Vans (vans) 插头dp
题意:一个4*n的矩阵,从左上角出发,经过每个顶点恰好1次回到左上角,问有多少种走法。第一道插头dp……磕磕绊绊总算过了……什么是插头dp请参考cdq的论文《基于连通性状态压缩的动态规划问题》。注意同样的路径,正着走和反着走算两条不同的,所以最后答案要乘2。然后加上高精就行了。代码(括号表示法):/*ID:shijiey1LANG:C++PROG:vans*/原创 2014-12-26 09:50:41 · 765 阅读 · 0 评论 -
bzoj1017 [JSOI2008]魔兽地图DotR 树形DP
DescriptionDotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Ancients) Allstars。DotR里面的英雄只有一个属性——力量。他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装原创 2015-01-30 11:28:31 · 726 阅读 · 0 评论 -
Educational Codeforces Round 15
题目链接在这里A. Maximum Increase最长上升子串#include <bits/stdc++.h>using namespace std;int n;int arr[100005];int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> arr[i]; int ans = 0;原创 2016-09-12 21:56:23 · 440 阅读 · 0 评论