当前位置: 首页 > news >正文

蓝桥杯每日一题2023.9.27

4408. 李白打酒加强版 - AcWing题库

题目描述

题目分析 

对于这题我们发现有三个变量,店,花,酒的数量,对于这种范围我们使用DP来进行分析。

dp[i][j][k]我们表示有i个店,j朵花,k单位酒的集合,其属性为数量

我们需要不重不漏将此分为两类进行dp,

第二类为最后是店dp[i - 1][j][k / 2]

        条件:i >= 1(因为如果当前店数为0,之前一定没有遇过店,-1为负也不正确)

                   k % 2 == 0 (k可以被2整除,因为遇到店前必须为2的倍数才能/2)

第一类为最后是花dp[i][j - 1][k + 1] 

        条件:j >= 1 (同理)(k + 1遇花可以使其-1变成k)

注:最后输出时不能是dp[n][m][0],因为这样不能分清楚最后是遇花还是遇店,而且这样算无论遇花还是遇店的方案数都是一样的,所以输出dp[n][m - 1][1]就一定为最后遇花的方案数

因为已知最后一次遇到的是花,他正好把酒喝光了,遇一次花喝一次酒,酒的数量枚举到和花一样多即可

#include<bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int N = 101;
int n, m, dp[N][N][N];
int main()
{cin >> n >> m;dp[0][0][2] = 1;for(int i = 0; i <= n; i ++)//店 {for(int j = 0; j <= m; j ++)//花 {for(int k = 0; k <= m; k ++)//酒 {if(i >= 1 && k % 2 == 0)//遇店 {dp[i][j][k] = (dp[i][j][k] + dp[i - 1][j][k / 2]) % mod; }if(j >= 1)//遇花 {dp[i][j][k] = (dp[i][j][k] + dp[i][j - 1][k + 1]) % mod;}}}}cout << dp[n][m - 1][1]; return 0;
}
http://www.lryc.cn/news/178165.html

相关文章:

  • Redis与分布式-主从复制
  • QT pyside2 线程嵌套子线程 实现开始运行和停止运行
  • 江西广电会展集团总经理李悦一行莅临拓世科技集团调研参观,科技璀璨AIGC掀新潮
  • 【RabbitMQ实战】06 RabbitMQ配置
  • CTF 全讲解:[SWPUCTF 2021 新生赛]jicao
  • FL Studio21.1电脑试用体验版音乐制作软件
  • 【数据结构】单链表的基本操作(节点建立、插入删除)
  • DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。
  • 施耐德电气:勾勒未来工业愿景,赋能中国市场
  • 安防监控产品经营商城小程序的作用是什么
  • php中判断指定字符串是否包含指定字符的封装函数
  • GICI-LIB源码阅读(三)因子图优化模型
  • 5、Docker安装mysql主从复制与redis集群
  • 【AI视野·今日NLP 自然语言处理论文速览 第四十三期】Thu, 28 Sep 2023
  • Unity 制作登录功能01-创建登录的UI并获取输入内容
  • 什么是用户画像?
  • DevExpress WinForms图表组件 - 直观的数据信息呈现方式!(二)
  • 基于AIOps实现智慧园区极简IT运维
  • chatgpt 只会死记硬背吗
  • 03-Zookeeper客户端使用
  • 自然语言处理(NLP)学习之与HanLP的初相识
  • JDBC【DBUtils】
  • 大数据Doris(一):Doris概述篇
  • vue 基于vue-seamless-scroll无缝滚动的用法和遇到的问题解决
  • SmartX 边缘计算解决方案:简单稳定,支持各类应用负载
  • FPGA 多路视频处理:图像缩放+视频拼接显示,HDMI采集,提供2套工程源码和技术支持
  • 【数据结构】抽象数据类型
  • Android 查看路由表
  • vulnhub靶机-DC系列-DC-3
  • 【CTFHUB】SSRF原理之简单运用(一)