洛谷 P1077 [NOIP 2012 普及組] 擺花-普及-

P1077 [NOIP 2012 普及組] 擺花

題目描述

小明的花店新開張,為了吸引顧客,他想在花店的門口擺上一排花,共 mmm 盆。通過調查顧客的喜好,小明列出了顧客最喜歡的 nnn 種花,從 111nnn 標號。為了在門口展出更多種花,規定第 iii 種花不能超過 aia_iai? 盆,擺花時同一種花放在一起,且不同種類的花需按標號的從小到大的順序依次擺列。

試編程計算,一共有多少種不同的擺花方案。

輸入格式

第一行包含兩個正整數 nnnmmm,中間用一個空格隔開。

第二行有 nnn 個整數,每兩個整數之間用一個空格隔開,依次表示 a1,a2,??,ana_1,a_2, \cdots ,a_na1?,a2?,?,an?

輸出格式

一個整數,表示有多少種方案。注意:因為方案數可能很多,請輸出方案數對 106+710^6+7106+7 取模的結果。

輸入輸出樣例 #1

輸入 #1

2 4
3 2

輸出 #1

2

說明/提示

【數據范圍】

對于 20%20\%20% 數據,有 0<n≤8,0<m≤8,0≤ai≤80<n \le 8,0<m \le 8,0 \le a_i \le 80<n8,0<m8,0ai?8

對于 50%50\%50% 數據,有 0<n≤20,0<m≤20,0≤ai≤200<n \le 20,0<m \le 20,0 \le a_i \le 200<n20,0<m20,0ai?20

對于 100%100\%100% 數據,有 0<n≤100,0<m≤100,0≤ai≤1000<n \le 100,0<m \le 100,0 \le a_i \le 1000<n100,0<m100,0ai?100

NOIP 2012 普及組 第三題

solution

動態規劃

  • 1 定義公式
  •  dp[i][j]: 用前 i 種花擺出 j 盆的方案數量
    
  • 2 遞推關系
    • dp[i][j] += dp[i][j - k] // 用k個第i種花
  • 3 結果
    • dp[n][m]

實際dp可以省略第一個維度,但是要注意更改順序,防止連鎖反應

代碼

#include <vector>
#include "set"
#include "iostream"
#include "unordered_map"
#include "algorithm"
#include "cstring"
#include "cmath"
#include "iomanip"
#include "cstdio"/** P1077 [NOIP 2012 普及組] 擺花* 題目大意:n種花,每種a[i]盆,擺出m盆,要求同一種花擺在一起,種類按照從小到大的順序選擇,共有多少種擺法* 0<n,m,ai≤100* * 思路:動態規劃* 1 定義公式 *      dp[i][j]: 用前 i 種花擺出 j 盆的方案數量* 2 遞推關系*      dp[i][j] += dp[i][j - k] // 用k個第i種花* 3 結果*      dp[n][m]* 實際dp可以省略第一個維度,但是要注意更改順序,防止連鎖反應*/const int N = 105;
using namespace std;
int n, m, dp[N]; // dp[i][j] 用前 i 種花擺出 j 盆int main() {cin >> n >> m;if (m < n) {cout << 0;return 0;}dp[0] = 1;for (int i = 1, a; i <= n; i++) {cin >> a;for (int j = m; j >= 1; j--) {for (int k = 1; k <= min(a, j); k++) // 第 i 種花可以擺幾種dp[j] += dp[j - k];dp[j] %= 1000007;}}cout << dp[m];return 0;
}

結果

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95511.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

時序數據庫選型指南:為何Apache IoTDB成為工業物聯網首選

引言&#xff1a;時序數據管理的挑戰與機遇 在工業4.0與物聯網技術深度融合的今天&#xff0c;全球設備產生的時序數據量正以指數級增長。據IDC預測&#xff0c;到2025年物聯網設備產生的數據將達79.4ZB&#xff0c;其中60%為時序數據。這類數據具有高頻采集&#xff08;毫秒級…

【C++】C++入門—(中)

前言&#xff1a;上一篇文章我們介紹了C入門的一些基礎的語法&#xff0c;將了命名空間&#xff0c;缺省參數等。這篇文章我們就來介紹剩余的語法。 文章目錄一&#xff0c;函數重載二&#xff0c;引用2.1引用的概念和定義2.2引用的特性2.3引用的引用場景2.3.1做函數形參&#…

嵌入式Linux驅動開發:i.MX6ULL按鍵中斷驅動(非阻塞IO)

嵌入式Linux驅動開發&#xff1a;i.MX6ULL按鍵中斷驅動&#xff08;非阻塞IO&#xff09; 概述 本文檔詳細介紹了在i.MX6ULL開發板上實現按鍵中斷驅動的完整過程。該驅動程序實現了非阻塞IO操作&#xff0c;允許用戶空間應用程序通過poll系統調用高效地監控按鍵狀態變化&…

從 @Schedule 到 XXL-JOB:分布式定時任務的演進與實踐

從Schedule到XXL-JOB&#xff1a;分布式定時任務的演進與實踐 在分布式系統中&#xff0c;定時任務是常見需求&#xff08;如數據備份、報表生成、緩存刷新等&#xff09;。Spring框架的Schedule注解雖簡單易用&#xff0c;但在集群環境下存在明顯局限&#xff1b;而XXL-JOB作為…

阿里云營業執照OCR接口的PHP實現與技術解析:從簽名機制到企業級應用

一、阿里云營業執照OCR接口的核心技術架構 阿里云OCR服務基于深度學習模型和大規模數據訓練,針對中國營業執照的版式特征(如統一社會信用代碼位置、企業名稱排版、經營范圍換行規則等)進行了專項優化,識別準確率可達98%以上。其接口調用遵循RESTful API設計規范,采用HMAC…

AI人工智能大模型應用如何落地

AI人工智能大模型應用落地需要經過以下步驟&#xff1a; 明確應用場景和目標&#xff1a;首先需要明確AI大模型在哪個領域、解決什么問題。例如&#xff0c;在智能客服領域&#xff0c;AI大模型可以用于提高客戶服務的效率和質量&#xff1b;在醫學領域&#xff0c;AI大模型可以…

手寫Muduo網絡庫核心代碼2--Poller、EPollPoller詳細講解

Poller抽象層代碼Muduo 網絡庫中的 Poller 抽象層是其事件驅動模型的核心組件之一&#xff0c;負責統一封裝不同 I/O 復用機制&#xff08;如 epoll、poll&#xff09;&#xff0c;實現事件監聽與分發。Poller 抽象層的作用統一 I/O 復用接口Poller 作為抽象基類&#xff0c;定…

基于MCP架構的OpenWeather API服務端設計與實現

隨著微服務和模塊化架構的發展&#xff0c;越來越多的系統傾向于采用可插拔、高內聚的設計模式。MCP(Modular, Collaborative,Pluggable)架構正是這樣一種強調模塊化、協作性和擴展性的設計思想。它允許開發者以“組件”方式組合功能&#xff0c;提升系統的靈活性與可維護性。 …

從“疊加”到“重疊”:Overlay 與 Overlap 雙引擎驅動技術性能優化

在技術領域&#xff0c;“Overlay”和“Overlap”常因拼寫相似被混淆&#xff0c;但二者實則代表兩種截然不同的優化邏輯&#xff1a;Overlay 是“主動構建分層結構”&#xff0c;通過資源復用與隔離提升效率&#xff1b;Overlap 是“讓耗時環節時間交叉”&#xff0c;通過并行…

【Vue2 ?】 Vue2 入門之旅(六):指令與過濾器

前一篇我們學習了組件化開發。本篇將介紹 指令與過濾器&#xff0c;這是 Vue 模板語法的重要擴展&#xff0c;讓頁面渲染更加靈活。 目錄 常見內置指令自定義指令過濾器小結 常見內置指令 Vue 提供了豐富的內置指令&#xff0c;常見的有&#xff1a; <div id"app&qu…

【隨筆】【Debian】【ArchLinux】基于Debian和ArchLinux的ISO鏡像和虛擬機VM的系統鏡像獲取安裝

一、Debian Debian -- Debian 全球鏡像站 阿里巴巴開源鏡像站-OPSX鏡像站-阿里云開發者社區 debian-cd-current-amd64-iso-cd安裝包下載_開源鏡像站-阿里云 清華源&#xff1a; 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror USTC Open Source Software Mirror 二、…

如何用 Kotlin 在 Android 手機開發一個文字游戲,并加入付費機制?

Kotlin 開發 Android 文字游戲基礎框架使用 Android Studio 創建項目&#xff0c;選擇 Kotlin 作為主要語言。基礎游戲邏輯可通過狀態機和文本解析實現&#xff1a;class GameEngine {private var currentScene: Scene loadStartingScene()fun processCommand(input: String):…

安卓開發---BaseAdapter(定制ListView的界面)

概念&#xff1a;BaseAdapter 是 Android 中最基礎的適配器類&#xff0c;它是所有其他適配器&#xff08;如 ArrayAdapter、SimpleAdapter&#xff09;的父類。方法簽名&#xff1a;public abstract class BaseAdapter implements ListAdapter, SpinnerAdapter { // 獲取數據…

Conda配置完全指南:Windows系統Anaconda/Miniconda的安裝、配置、基礎使用、清理緩存空間和Pycharm/VSCode配置指南

本文同步發布在個人博客&#xff1a; Conda配置完全指南Conda 是一個開源的跨平臺包管理與環境管理工具&#xff0c;廣泛應用于數據科學、機器學習及 Python 開發領域。它不僅能幫助用戶快速安裝、更新和卸載第三方庫&#xff0c;還能創建相互隔離的虛擬環境&#xff0c;解決不…

什么是賬號矩陣?如何避免賬號IP關聯風險

賬號矩陣是指在同一平臺或多個平臺上&#xff0c;圍繞同一品牌、業務或個人 IP 構建的多個相互關聯、協同運作的賬號體系。這些賬號通過差異化的內容定位和運營策略形成互補&#xff0c;共同實現流量聚合、品牌曝光或業務拓展的目標。協同效應&#xff1a;賬號間通過內容互推、…

解析ELK(filebeat+logstash+elasticsearch+kibana)日志系統原理以及k8s集群日志采集過程

ELK日志系統解析 ELK 日志系統&#xff08;現常稱為 Elastic Stack&#xff0c;由 Filebeat、Logstash、Elasticsearch、Kibana 組成&#xff09;是一套用于 日志收集、清洗、存儲、檢索和可視化 的開源解決方案。 它的核心價值是將分散在多臺服務器 / 應用中的日志 “匯聚成池…

python 內置函數 sort() 復雜度分析筆記

在做 280. 擺動排序 時&#xff0c;有一版 python 題解&#xff0c;里面直接用了sort() &#xff0c;又用了一個簡單的 for 循環&#xff0c;但整體時間復雜度為 O(n?log(n)) &#xff0c;那么問題就出自這個 sort() &#xff0c;所以在這分析一下 sort() 的復雜度。Python 的…

【光照】Unity中的[經驗模型]

【從UnityURP開始探索游戲渲染】專欄-直達 圖形學第一定律&#xff1a;“看起來對就對” URP光照模型發展史 ?2018年?&#xff1a;URP首次發布&#xff08;原LWRP&#xff09;&#xff0c;繼承傳統前向渲染的Blinn-Phong簡化版?2019年?&#xff1a;URP 7.x引入Basic Shade…

uniapp小程序使用自定義底部tabbar,并根據用戶類型動態切換tabbar數據

1.注意點 在pages.json中配置tabbar如下字段&#xff1a;custom&#xff1a;true &#xff0c;會自動隱藏原生tabbar&#xff0c;使用自定義的tabbar2.如何自定義呢 可以使用第三方組件庫的tabbar組件&#xff0c;然后二次封裝下內部封裝邏輯&#xff1a; 1.點擊切換邏輯 2.根據…

Redis 哨兵 (基于 Docker)

目錄 1. 基本概念 2. 安裝部署 (基于 Docker) 2.1 使用 docker 獲取 redis 鏡像 2.2 編排 主從節點 2.3 編排 redis-sentinel 節點 3. 重新選舉 4. 選舉原理 5. 總結 1. 基本概念 名詞 邏輯結構物理結構主節點Reids 主服務一個獨立的 redis-server 進程從節點Redis 從…