题解 CF676B 【Pyramid of Glasses】
ShineEternal
2019-09-21 20:01:01
更完整看这:https://blog.csdn.net/kkkksc03/article/details/101116393
## solution:
$idea1$:
暴力,每一秒枚举情况
时间复杂度$O(n^2t)$,但是本题不会超时
$idea2:$
~~考虑非正常思考方式~~
我们先把t秒的酒量都倒入第一个杯子中
因为我们只需要找到最后的状态
这样时间复杂度里面的t就可以省掉了。
$O(n^2)$按顺序看看每一个酒杯里有没有需要倒入下一个酒杯的即可
**注意最后是装满的酒杯的个数**
```cpp
#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;
}
```