解析:
始終不會寫這類題型的題目!!!!!!
模擬+遞推
第8天開始發病,那麼就要加上第一天的感染人數
第9天開始發病的,那麼就要加上第二天感染的人數+第一天感染的人數
以此類推
那麼遞推方程就是 ans+=a[i-7]
對於治癒也是同理 遞推方程爲:ans-=a[i-13]
對於第8天開始增加的人數 是前一天的3倍
注意:增加的人數不能超過現有人數
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+1000;
int t;
ll x,m,n;
ll a[N];
int main()
{
cin>>t;
while(t--)
{
cin>>x>>m>>n;
memset(a,0,sizeof a);
ll ans=0;
ll res=m-1;
a[1]=1;
for(int i=2;i<=n;i++)
{
if(i>7) ans+=a[i-7];
if(i>13) ans-=a[i-13];
ll p=ans*x;
a[i]=min(p,res);
res-=a[i];
}
cout<<ans<<endl;
}
}