题解 CF676B 【Pyramid of Glasses】

ShineEternal

2019-09-21 20:01:01

Solution

更完整看这: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; } ```