1,
#includeusing namespace std;
int main()
int solve(int i,int j)
int main()
float p,pj,q,qj;
int n,mj;
float dp[
5000
];int
main
()dp[0]=
1;for(
int i=
1;i<=n;i++)
for(
int j=v;j>=vol[i];j--)
dp[j]=
max(dp[j],dp[j-vol[i]]*val[i]);
int i;
for(i = v; i>=
0;i--)
}cout<}return0;
}
最大報銷額
還是01揹包問題,這裡面有特殊,就是cost和weight(價值)是相同的,v是可以報銷的錢數
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define maxn 10000+5
#define ull unsigned
long
long
#define ll long
long
#define
rep(i,n)
for(i=
1;i<=n;i++)
#define
rep(i,n)
for(i=
0;i#define
cle(a)
memset
(a,0
,sizeof
(a))
#define mod 90001
#define pi 3.141592657
const
ullinf = 1ll <<61;
const
double eps=
1e-5
;using
namespace std;
bool
cmp(
int a,
int b)
double q;
int n;
int dp[
3000005
],mark,f[
32],p;
int num;
char s,c;
float a,suma,sumb,sumc;
intmain()}
if(mark||(suma+sumb+sumc)
>
1000||suma>600||sumb>600||sumc>600)continue;
f[p++]=
100*(suma+sumb+sumc);
}for
(int i=
0;ifor(
int j=q*
100;j>=f[i];j--)
int t=q*
100;
cout
)<0.01
<}return0;
}
max sum
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define maxn 10000+5
#define ull unsigned
long
long
#define ll long
long
#define
rep(i,n)
for(i=
1;i<=n;i++)
#define
rep(i,n)
for(i=
0;i#define
cle(a)
memset
(a,0
,sizeof
(a))
#define mod 90001
#define pi 3.141592657
const
ullinf = 1ll <<61;
const
double eps=
1e-5
;using
namespace std;
bool
cmp(
int a,
int b)
int a[
100005
];int sum[
100005
];int
main
()sum[
1]=a[1];
int x=
1,start=
1,end=1;
int max1=a[1];
for(
int i=
2;i<=n;i++)
else sum[i]=sum[i-1
]+a[i];
if(sum[i]>max1)
}cout<<
"case "
<":"
}
這道題的狀態轉移方程為 sum[i]=max(sum[i-1]+a[i],a[i]) 值得注意的是怎麼儲存開始和結束點的位置
動態規劃入門(dp)
dp的基本思想,是把大問題轉化成乙個個小問題,然後遞迴解決。所以本質思想的話還是遞迴。dp最重要的是要找到狀態轉移方程,也就是把大問題化解的過程。舉個例子 乙個數字金字塔 112 2332 2243 133 在上面的數字三角形中尋找一條從頂部到底邊的路徑,使得路徑上所經過的數字之和最大。路徑上的每一...
動態規劃入門
1 用 dp 做的題大多數返回值是int boolean,求max min,不能打亂原來輸入順序。2 動態規劃有兩個重要定義,乙個叫 optimal substructure 另乙個叫 overlap subproblem 各種排序 tree 類問題中,都會用到 divide conquer 的思想...
動態規劃入門
大家可以看看這篇文章dp,哪個更容易理解就看哪個!一 動態規劃的定義 動態規劃程式設計是一種針對於解決最優化問題的一種途徑 一種方法,而不是一種特殊演算法,也就是說它沒有固定的模板。在動態規劃中,每走一步都要看看能不能最優,而且動態規劃最擅長的就是多階段問題!二 動態規劃的基本概和基本模型構成 1....