新闻详情

新闻详情

首页 / 资讯中心 / 详情

洛谷 P1077:[NOIP 2012 普及组] 摆花 ← 动态规划

发布时间:2026/10/1 10:15:19来源:尧图网络
洛谷 P1077:[NOIP 2012 普及组] 摆花 ← 动态规划
【题目来源】https://www.luogu.com.cn/problem/P1077https://www.acwing.com/problem/content/453/【题目描述】小明的花店新开张为了吸引顾客他想在花店的门口摆上一排花共 m 盆。通过调查顾客的喜好小明列出了顾客最喜欢的 n 种花从 1 到 n 标号。为了在门口展出更多种花规定第 i 种花不能超过 ai 盆摆花时同一种花放在一起且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算一共有多少种不同的摆花方案。【输入格式】第一行包含两个正整数 n 和 m中间用一个空格隔开。第二行有 n 个整数每两个整数之间用一个空格隔开依次表示 a1a2⋯an。【输出格式】一个整数表示有多少种方案。注意因为方案数可能很多请输出方案数对 10^67 取模的结果。【输入样例】2 43 2【输出样例】2【数据范围】对于 20% 数据有 0n≤80m≤80≤ai≤8。对于 50% 数据有 0n≤200m≤200≤ai≤20。对于 100% 数据有 0n≤1000m≤1000≤ai≤100。【算法分析】● 题意简析一共有 n 种花要摆总共 m 盆花。第 i 种花最多摆 ai 盆。同一种花放一起花种类必须按 1~n 的顺序摆放。求总方案数答案对 10^67 取模。● 设dp[i][j] 表示前 i 种花一共摆 j 盆的方案数。则状态转移方程为其中k 代表第 i 种花摆放 k 盆。且边界条件为 dp[0][0]1即 0 种花摆 0 盆有 1 种方案什么都不放。【算法代码一二维数组】#include bits/stdc.h using namespace std; const int MOD1e67; const int N1e25; int dp[N][N]; int a[N]; int main() { int n,m; cinnm; for(int i1; in; i) { cina[i]; } dp[0][0]1; for(int i1; in; i) { for(int j0; jm; j) { for(int k0; ka[i] kj; k) { dp[i][j](dp[i][j]dp[i-1][j-k])%MOD; } } } coutdp[n][m]endl; return 0; } /* in: 2 4 3 2 out: 2 */【算法代码二一维数组优化】本质是多重背包的一维数组优化问题。k0 代表第 i 种花一盆都不选。这个情况已经提前存进 dp 里了不需要再在循环里再加一遍。所以循环中 k 从 1 开始。#include bits/stdc.h using namespace std; const int MOD1e67; const int N1e25; int dp[N],old[N]; int a[N]; int main() { int n,m; cinnm; for(int i1; in; i) { cina[i]; } dp[0]1; for(int i1; in; i) { for(int t0; tm; t) { old[t]dp[t]; } for(int j0; jm; j) { for(int k1; ka[i] kj; k) { dp[j](dp[j]old[j-k])%MOD; } } } coutdp[m]endl; return 0; } /* in: 2 4 3 2 out: 2 */【参考文献】https://www.luogu.com.cn/problem/solution/P1077https://www.acwing.com/solution/content/4902/
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

宁波本地靠谱的AI搜索优化企业有哪些:实力与用户口碑 2026/10/1 11:01:54

宁波本地靠谱的AI搜索优化企业有哪些:实力与用户口碑

杭州国技互联信息技术有限公司是杭州区域百度总代理、浙江地区小红书官方代理,深耕数字营销领域21年,为企业提供包括百度搜索推广、百度品牌广告、小红书种草投流、小红书品牌建设与代运营、AI搜索优化、高德本地生活推广、抖音短视频矩阵等在内的全链路…

阅读更多 →
火灾烟雾检测数据集详解:VOC/YOLO双格式标注与YOLO训练实战 2026/10/1 11:01:54

火灾烟雾检测数据集详解:VOC/YOLO双格式标注与YOLO训练实战

简介:一套面向计算机视觉目标检测任务的火灾烟雾图像标注数据集,主要服务于算法工程师、科研人员及竞赛团队,用于训练和评估火灾烟雾识别模型。资源包含两千二百五十七张经专业人员精细标注的高质量图像,每张均绘制准确的边界框并…

阅读更多 →
C# WPF上位机实战:MVVM+Modbus TCP状态机控制搬移设备 2026/10/1 11:01:54

C# WPF上位机实战:MVVM+Modbus TCP状态机控制搬移设备

搞工控上位机这些年,最让我上头的项目不是那种“界面花哨”的展示型软件,而是“流程错一步就可能出事”的硬核控制项目。最近交付的石墨岛搬移设备上位机,正好属于这种类型——设备负责把石墨化炉里的石墨岛安全搬出、转运、再装回&#xff0…

阅读更多 →
CUPT水瓶游戏:用Visual C++实现倒水益智与BFS求解 2026/10/1 11:01:54

CUPT水瓶游戏:用Visual C++实现倒水益智与BFS求解

简介:这份压缩包面向CUPT物理竞赛中的水瓶课题,内含一份基于Visual C编写的水瓶物理模拟源码,适合正在备赛的高校学生以及希望入门C物理模拟与游戏开发的开发者。包体非常精简,仅含1个cpp源文件,压缩后大小约1KB&#…

阅读更多 →
WSL2 Ubuntu 24.04 SSH远程登录完整配置指南 2026/10/1 11:01:54

WSL2 Ubuntu 24.04 SSH远程登录完整配置指南

近几年 Windows 上做开发绕不开 WSL2,尤其是 Ubuntu 24.04 更新之后,很多朋友把编译工具链、数据库、Python 环境都塞进了 WSL2 里。但不少人折腾完系统,到了“远程登录”这一步就卡住了——SSH 要么连不上、要么只能在本机敲命令、要么每次重…

阅读更多 →
YOLOv8s轻量检测+规则引擎实现智能食谱生成 2026/10/1 11:01:47

YOLOv8s轻量检测+规则引擎实现智能食谱生成

简介:本资源是一个基于YOLO目标检测算法的智能食谱生成系统完整实现,面向计算机视觉初学者、深度学习课程设计与毕业设计学生,解决“从食物图像识别到个性化食谱推荐”的端到端工程落地问题。压缩包共12个文件,含3个核心Python脚本…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉