Sumo and Virus------------------------------思維(模擬+遞推)

在這裏插入圖片描述
在這裏插入圖片描述
解析:
始終不會寫這類題型的題目!!!!!!

模擬+遞推
第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;
		
	}
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章