由於這道題目的資料量比較大,採用dp處理的時候,還涉及到滾輪陣列。
關於滾輪陣列的講解:
題意分析:
#include
#include
#define maxn 1100
#define mod 100000007
using
namespace
std;
typedef
long
long ll;
ll n,s,a,b;
int dp[2][maxn*maxn];
int e=0;
int cnt=0;
int main()
}//根據推出來的公式,統計符合的數目
for(i=0; i<=n*(n-1)/2; i++)
cout
0;}
下面是用dfs水的**,tle,20分。
#include
#define maxn 110
typedef
long
long ll;
using
namespace
std;
int n,s,a,b;
ll ans=0,total;
void dfs(int cur,int sum,int len)
return ;
}dfs(cur+a,sum+cur+a,len+1);
dfs(cur-b,sum+cur-b,len+1);
}int main()
波動數列 DP 組合
觀察這個數列 1 3 0 2 1 1 2 這個數列中後一項總是比前一項增加2或者減少3,且每一項都為整數。棟棟對這種數列很好奇,他想知道長度為 n 和為 s 而且後一項總是比前一項增加 a 或者減少 b 的整數數列可能有多少種呢?輸入格式 共一行,包含四個整數 n,s,a,b,含義如前面所述。輸出格...
波動數列 數論推導,dp
題目鏈結 觀察這個數列 1 3 0 2 1 1 2 這個數列中後一項總是比前一項增加2或者減少3,且每一項都為整數。棟棟對這種數列很好奇,他想知道長度為 n 和為 s 而且後一項總是比前一項增加 a 或者減少 b 的整數數列可能有多少種呢?共一行,包含四個整數 n,s,a,b,含義如前面所述。共一行...
AcWing 1214 波動數列(推柿子 DP)
觀察這個數列 1 3 0 2 1 1 2 這個數列中後一項總是比前一項增加2或者減少3,且每一項都為整數。棟棟對這種數列很好奇,他想知道長度為 n 和為 s 而且後一項總是比前一項增加 a 或者減少 b 的整數數列可能有多少種呢?輸入格式 共一行,包含四個整數 n,s,a,b,含義如前面所述。輸出格...