[模拟]来一瓶82年拉菲(酒杯问题)

2023-11-08 17:59

本文主要是介绍[模拟]来一瓶82年拉菲(酒杯问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

悠神最近过生日,朋友纷纷来贺。现有一瓶82年拉菲与若干酒杯。酒杯呈三角形酒塔摆放,即每一个酒杯摆放在下一层两个酒杯中间,最下面一层酒杯摆放在桌面上。共有N(1<=N<=20)层酒杯,第k层共有k个酒杯。悠神将拉菲倒进第一层的酒杯中,速度为1杯/s,倒满后酒会向左右两个方向溢出,假设会全部溢出到这个酒杯下面相邻的两个酒杯中。然而悠神有洁癖,他不喜欢浪费,更不喜欢浸湿他心爱的桌布,所以请你计算一下第几秒之后桌布会被浸湿。

eg:如图所示为3层时的情况。第一层倒满需要1s,第二次倒满需要2s,第三层首次倒满需要2s。所以共需1+2+2=5s。

输入:

输入N(1<=N<=20)。

输出:

桌布浸湿时至少所需时间(取整数)。

输入样例:

2

输出样例:

3

分析:

桌布浸湿只与最下层最中间位置何时倒满有关,因此只需计算最下层中间位置酒杯的状态。由于时间取整,所以只需模拟出第一杯共倒了多少杯酒,即为多少s。而每一个酒杯共倒了多少酒与上一层相邻两个酒杯相关,及第i层第j个酒杯的酒只与第i-1层第j-1个和第j个酒杯的酒相关。及wine[i][j]=wine[i-1][j-1]+wine[i-1][j];由于酒杯有两种状态,及未满状态和倒满状态,所以要判断wine[i-1]层的酒是否>1。

#include<stdio.h>
#include<string.h>
#define MAXN 20
int main() {int N;while (~scanf("%d", &N)) {double wine[MAXN + 1][MAXN + 1] = { 0 };double temp = 0;while (wine[N][N / 2 + 1] < 1) {memset(wine, 0, sizeof(wine));temp++;wine[1][1] = temp;for (int i = 1; i <= N; i++) {for (int j = 1; j <= i; j++) {wine[i][j] += (wine[i - 1][j - 1] > 1 ? (wine[i - 1][j - 1] - 1) / 2.0 : 0) + (wine[i - 1][j] > 1 ? (wine[i - 1][j] - 1) / 2.0 : 0);}}}printf("%g\n", wine[1][1]);}return 0;
}

这篇关于[模拟]来一瓶82年拉菲(酒杯问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371536

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

MAVEN3.9.x中301问题及解决方法

《MAVEN3.9.x中301问题及解决方法》本文主要介绍了使用MAVEN3.9.x中301问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录01、背景02、现象03、分析原因04、解决方案及验证05、结语本文主要是针对“构建加速”需求交

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc