日月卦長
long long F[100+5];
// ...
F[0] = 0;
F[1] = 1;
for(int i=2; i<=100; ++i){
F[i] = F[i-1] + F[i-2];
}
// ...
cout << F[100] << '\n';long long F(int i){
if(i == 0) return 0;
if(i == 1) return 1;
return F(i-1) + F(i-2);
}
// ...
cout << F(100) << '\n';#include <bits/stdc++.h>
using namespace std;
long long F(int i){
if(i==0 || i==1) return i;
return F(i-1) + F(i-2);
}
int main(){
for(int i = 0; i < 50; ++i){
cout << i << ": " << F(i) << '\n';
}
return 0;
}#include <bits/stdc++.h>
using namespace std;
long long DP[1000];
long long F(int i){
if(i==0 || i==1) return i;
if(DP[i]!=0) return DP[i];
return DP[i] = F(i-1) + F(i-2);
}
int main(){
for(int i = 0; i < 50; ++i){
cout << i << ": " << F(i) << '\n';
}
return 0;
}#include <bits/stdc++.h>
using namespace std;
long long DP[1000];
long long F(int i){
if(i==0 || i==1) return i;
if(DP[i]!=0) return DP[i];
return DP[i] = F(i-1) + F(i-2);
}
int main(){
for(int i = 0; i < 50; ++i){
cout << i << ": " << F(i) << '\n';
}
return 0;
}其實就是滿足一些條件的遞迴公式
$$F_n$$
$$F_{n-1}$$
$$F_{n-2}$$
$$F_{n-2}$$
$$F_{n-3}$$
\(F_0=0\\F_1=1\)
\(F_n = F_{n-1}+F_{n-2}\)
\(F_0=0\\F_1=1\)
\(F_n = F_{n-1}+F_{n-2}\)
long long F[100+5];
// ...
F[0] = 0;
F[1] = 1;
for(int i=2; i<=100; ++i){
F[i] = F[i-1] + F[i-2];
}
// ...
cout << F[100] << '\n';long long DP[100+5];
long long F(int i){
if(i == 0) return 0;
if(i == 1) return 1;
if(DP[i]!=0) return DP[i];
return DP[i] = F(i-1) + F(i-2);
}
// ...
cout << F(100) << '\n';
int dp[MAXN][MAXT] = {};
bool vis[MAXN][MAXT] = {};
int d(int i, int v){
if(i==0||v==0) return 0;
if(v<0) return -9999999;
if(vis[i][v]) return dp[i][v];
vis[i][v] = true;
return dp[i][v] =
max(d(i-1,v), d(i-1,v-c[i])+w[i]);
}int dp[MAXN][MAXT] = {};
for(int i=1; i<=n; ++i)
for(int v=c[i]; v<=T; ++v)
dp[i][v] =
max(dp[i-1][v], dp[i-1][v-c[i]]+w[i]);int dp[2][MAXT] = {};
for(int i=1; i<=n; ++i)
for(int v=c[i]; v<=T; ++v)
dp[i&1][v] =
max(dp[(i-1)&1][v], dp[(i-1)&1][v-c[i]]+w[i]);
int ans = dp[n&1][T];int dp[MAXT] = {};
for(int i=1; i<=n; ++i)
for(int v=T; v>=c[i]; --v)
dp[v] = max(dp[v], dp[v-c[i]]+w[i]);
int ans = dp[T];