description:
solution:
idea1:
暴力,每一秒枚举情况
时间复杂度 O(n2t),但是本题不会超时
idea2:
考虑非正常思考方式
我们先把t秒的酒量都倒入第一个杯子中
因为我们只需要找到最后的状态
这样时间复杂度里面的t就可以省掉了。
O(n2)按顺序看看每一个酒杯里有没有需要倒入下一个酒杯的即可
注意最后是装满的酒杯的个数
#include<cstdio>
using namespace std;
double a[15][15];
int main()
{
int n,t;
scanf("%d%d",&n,&t);
a[1][1]=t;
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(a[i][j]>=1)
{
ans++;
a[i+1][j]+=(a[i][j]-1)/2.0;
a[i+1][j+1]+=(a[i][j]-1)/2.0;
}
}
}
printf("%d\n",ans);
return 0;
}