① 你好,藍橋杯波動數列的動態轉移方程怎麼得到的啊謝謝
您好,您試試這樣:
#include<iostream>
#include<queue>
#include<cmath>
typedef long long ll;
using namespace std;
ll n,s,a,b,sum;
ll cnt;
void bfs(ll head)
{
ll len;
queue<ll> q;
queue<ll> S;
S.push(head);
q.push(head);
len=1;
while(!q.empty()&&len<=pow(2,n)-1)
{
ll t=q.front();
//cout<<t<<' ';
ll T=S.front();
//cout<<T<<' ';
if(len>=pow(2,n-1)&&len<=pow(2,n)-1)
{
//cout<<T<<' ';
if(T==s)
cnt++;
}
q.pop();
S.pop();
//if(len<=3)
//{
q.push(t+a);
q.push(t-b);
S.push(T+t+a);
S.push(T+t-b);
//}
len++;
}
}
int main()
{
cnt=0;
cin>>n>>s>>a>>b;
for(ll i=s-n*a;i<=s+n*b;i++)
{
sum=0;
bfs(i);
//cout<<endl;
}
cout<<cnt<<endl;
return 0;
}
② 關於藍橋杯Fibonacci數列