题解
1.要确保任意回合赢回来的钱都要比之前下注的钱的总和要多
令 \(b_i\) 为第 \(i\) 回合下注的钱,则有 \(b_i·k>\sum_{j=1}^{i}b_j\)
则有 \(b_i\ge \left\lfloor \frac {\sum_{j=1}^{i-1}b_j}{k-1} \right\rfloor+1\)
为了尽可能地不把钱花光,选最小的 \(b_i\)
2.如果在下注过程中把钱花光了,输出no
code
#include<bits/stdc++.h>
using namespace std;
int k,x,a;
void solve()
{
int sum=0;
for(int i=1;i<=x+1;i++)
{
sum+=sum/(k-1)+1;
if(sum>a)
{
puts("NO");
return;
}
}
puts("YES");
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>k>>x>>a;
solve();
}
return 0;
}
标签:下注,return,puts,int,sum,Casino,Sasha
From: https://www.cnblogs.com/pure4knowledge/p/18102742