description:

solution:

i d e a 1 idea1 idea1:

暴力,每一秒枚举情况

时间复杂度 O ( n 2 t ) O(n^2t) O(n2t),但是本题不会超时

i d e a 2 : idea2: idea2:

考虑非正常思考方式

我们先把t秒的酒量都倒入第一个杯子中

因为我们只需要找到最后的状态

这样时间复杂度里面的t就可以省掉了。

O ( n 2 ) O(n^2) 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;
}