题解

设第 ii 年的金额为AiA_i,则有 Ai+1=Ai∗(1+r%)−B∗i−CA_{i+1}=A_i*(1+r\%)-B*i-C

化简一下: Ai+1+u+v=(1+r%)∗(Ai+u+v)A_{i+1}+u+v=(1+r\%)*(A_i+u+v)

其中u=−B/r,v=−(C+B/r)/ru=-B/r,v=-(C+B/r)/r。 根据状态转移方程可以得到: Ai=(1+r%)i−1∗(A+u+v)A_i=(1+r\%)^{i-1}*(A+u+v)

为了使 0≤Ai0\le A_i,只需要 A+u+v>0A+u+v >0即 A>(B/r+C/r+B/r2)A>(B/r+C/r+B/r^2) 。

代码

#include <bits/stdc++.h>
using namespace std;

using db = double;
void solve()
{
    db r, b, c;
    cin >> r >> b >> c;
    r /= 100;
    cout << (r + 1) * b / r / r + c / r << '\n';
}
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

0 条评论

目前还没有评论...

信息

ID
139
时间
ms
内存
MiB
难度
1
标签
(无)
递交数
50
已通过
48
上传者