小蒟蒻的题解
作为一个数渣,我第一次看这题时,感觉好难。再强压着再读一遍,才发现是道十足的大水题。
原本我是开一个数组来记录每天的结果,后来发现既然是只求第 (n) 天的,那就用两个变量相互迭代就可以了,节省了空间。
#include<bits/stdc++.h>
using namespace std;
int m,n,s,i,r; //如题,m则是总人数,r是治愈人数。
long double b,y;
int sjx,hsy; //辅助迭代的变量。
int main()
{
cin>>s>>i>>n>>b>>y;
m=s+i;
for(int j=1;j<=n;j++)
{
sjx=ceil(b*s*i);
hsy=ceil(y*i);
if(sjx>s) //当所有的易感染者都被感染了,就不能再多了。
sjx=s;
r=r+hsy;
i=i-hsy+sjx;
s=s-sjx; //迭代的精髓
}
cout<<s<<" "<<i<<" "<<r;
return 0;
}
逃(