![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 55
CharlieBrownn
八重樱花繁且枝盛,君需记累瓣必偿情。
展开
-
分割区域问题汇总
注明出处,摘自 http://www.cnblogs.com/chaosheng/archive/2012/01/26/2329583.html(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成...转载 2018-06-04 21:14:03 · 365 阅读 · 0 评论 -
hdu 4489(排列组合+DP)
有N个高矮不同的人,求高矮高矮高矮高矮......或者矮高矮高矮高......的排列方法一共有多少种。假设第N个插入到队伍中的人比前N-1个人都要高,假设他插入的位置为 j ,那么j-1要比j-2矮,j+1要比j+2矮即 j-2 j-1 j j+1 j+2 是高矮高矮高所以先选前j-1个人,排列组合C(n-1,j-1)。dp[i][0]表示插入位置之前的排列种数dp[i][1]表示插入...原创 2018-06-09 11:34:16 · 350 阅读 · 0 评论 -
ZOJ 3747/uva 10328
ZOJ 3747题意:有n个字母(只含A、B、C),求至少有m个连续的A,最多有k个连续的C的排列种数。输入:n,m,k输出:排列的种数题意非常的简单,但是。。。我们考虑问题的另一种表达:至多k个连续C,至多n个连续A情况减去至多k个连续C,至多(m-1)个连续A 情况。//dp[i][0]表示第i个为A,至多有u个连续A,至多有v个连续C的个数 //这里的u和v固定//dp[i][1]表示第i...原创 2018-06-08 11:45:24 · 150 阅读 · 0 评论 -
UVA 10635 (伪LCS+LIS二分)
题意:王子和公主从 (1,1)走到(n,n)找出他们有多少次同时站在同一格上。第一个数组p[i]:王子在i位置时是第p[i]步。第二个数组:王子和公主在同一格时,王子是第几步。所以只要找出这些步数的最长上升子序列就可以了!!!因为步数是从小到大不能往后退,所以是找出上升序列。#include <stdio.h>#include <string.h>#include &l...原创 2018-06-14 23:51:52 · 138 阅读 · 0 评论 -
hdu 1087 最长递增子序列和
dp[i]=max(dp[i],dp[i]+a[j])dp[i]为前i个最优状态思维变慢了QAQ初始化时不能随便赋值!!!#include<bits/stdc++.h>using namespace std;int main(){ int n; int a[1000]; int dp[10005]; while(cin>>n) { if(n==0)r...原创 2018-06-14 20:43:04 · 121 阅读 · 0 评论 -
hud2844 (多重背包二进制优化)
二进制优化就是:本来你要选24个这种物品,我可以把他拆成1,2,4,8和9,9是由24-1-2-4-8得来的。任意一个实数都可以这样拆开。为什么要优化呢,因为快啊。#include<bits/stdc++.h>using namespace std;#define INF -0x3f3f3f3fint value[100005],dp[100005],num[100005],n,...原创 2018-06-14 16:29:25 · 144 阅读 · 0 评论 -
hdu 2844(多重背包)/hdu 2195(完全背包)
HDU 2844#include<bits/stdc++.h>using namespace std;int a[100005];int c[100005];int dp[100005];int f[100005];int main(){ int n,m; while(cin>>n>>m) { if(n==0&&m==0)...原创 2018-06-13 21:59:27 · 270 阅读 · 0 评论 -
HDU 递推求解专题练习(For Beginner)解题报告
hdu 2044点击打开链接a[0]=1;a[1]=1a[i]=a[i-1]+a[i-2]斐波那契hdu 2045点击打开链接1.第n-1格和第1格颜色不同 a[i]=a[i-1]2.第n-1格和第1格颜色相同,那么先把剩下的1~n-2格涂好,即a[n-2]种,第n-1格颜色与第1格相同,不用考虑,第n格颜色有2种涂法,所以 a[i]=a[i-2]*23.a[1]=3;a[2]=6;a[3]=6;...原创 2018-06-05 22:18:59 · 283 阅读 · 0 评论 -
hdu 1864(0 1背包+小数处理)
最大报销额Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 30337 Accepted Submission(s): 9339Problem Description现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类...原创 2018-06-12 20:25:32 · 261 阅读 · 0 评论 -
hdu 4055/ZOJ 3543 Number String (计数DP+手动取模+巧妙)
以下为在HDU上测试的时间,手动取模比%快了不少dp[i][j]表示长度为i的字符串,最后一个数字为j时的排列种数。字符为 I 时如果长的为i-1的字符串都排好了的话,第j位只要找第i-1位的数字比j小的就行所以就是 dp[i][j]=d[i-1][1]+ d[i-1][2]+ d[i-1][3]+...+d[i-1][j-1] 字符为 D 时如果长的为i-1的字符串都排好了的话,只要找第i-...原创 2018-06-10 22:05:01 · 198 阅读 · 0 评论