信奧賽CSP-J復賽集訓(DP專題)(24):P1977 出租車拼車

信奧賽CSP-J復賽集訓(DP專題)(24):P1977 出租車拼車

在這里插入圖片描述

題目背景

話說小 x 有一次去參加比賽,雖然學校離比賽地點不太遠,但小 x 還是想坐出租車去。大學城的出租車總是比較另類,有“拼車”一說,也就是說,你一個人坐車去,還是一堆人一起,總共需要支付的錢是一樣的(每輛出租上除司機外最多坐下 4 4 4 個人)。剛好那天同校的一群 OIer 在校門口扎堆了,大家果斷決定拼車去賽場。

問題來了,一輛又一輛的出租車經過,但里面要么坐滿了乘客,要么只剩下一兩個座位,眾 OIer 都覺得坐上去太虧了,小 x 也是這么想的。

題目描述

假設 N N N 位 OIer 準備拼車,此時為 0 0 0 時刻,從校門到目的地需要支付給出租車師傅 D D D 元(按車次算,不管里面坐了多少 OIer),假如 S S S 分鐘后恰能趕上比賽,那么 S S S 分鐘后經過校門口的出租車自然可以忽略不計了。現在給出在這 S S S 分鐘當中經過校門的所有的 K K K 輛出租車先后到達校門口的時間 T i T_i Ti? 及里面剩余的座位 Z i Z_i Zi?
,OIer 可以選擇上車幾個人(不能超過),當然,也可以選擇上 0 0 0 個人,那就是不坐這輛車。

俗話說,時間就是金錢,這里小 x 把每個 OIer 在校門等待出租車的分鐘數 等同于花了相同多的錢(例如小 x 等待了 20 20 20 分鐘,那相當于他額外花了 20 20 20 元錢)。

在保證所有 OIer 都能在比賽開始前到達比賽地點的情況下,聰明的你能計算出他們最少需要花多少元錢么?

輸入格式

每組數據以四個整數 N N N , K K K , D D D , S S S 開始,具體含義參見題目描述。

接著 K K K 行,表示第 i i i 輛出租車在第 T i T_i Ti? 分鐘到達校門,其空余的座位數為 Z i Z_i Zi?

時間按照先后順序。

輸出格式

對于每組測試數據,輸出占一行,如果他們所有人能在比賽前到達比賽地點,

則輸出一個整數,代表他們最少需要花的錢(單位:元),否則請輸出 impossible

輸入輸出樣例 #1

輸入 #1

2 2 10 5
1 1
2 2

輸出 #1

14

說明/提示

對于 100 % 100\% 100% 的數據,滿足 N , K , D , S ≤ 100 N,K,D,S \le 100 N,K,D,S100 1 ≤ Z i ≤ 4 1 \le Z_i \le 4 1Zi?4 1 ≤ T i ≤ T i + 1 ≤ S 1 \le T_i \le T_{i+1} \le S 1Ti?Ti+1?S

AC代碼:

#include<bits/stdc++.h>
using namespace std;
/*思路: dp[i][j]:前i輛車坐了j個人的最小花費 狀態轉移方程:1、第i輛車不坐人: dp[i][j]=dp[i-1][j] 2、第i輛車坐m個人:1≤m≤min(z[i],j)dp[i][j]=min(dp[i-1][j-m]+m*a[i].t+d,dp[i][j])--ps1: dp[i-1][j-m]表示前i-1輛車坐了j-m個人的最小花費 --ps2:m*a[i].t+d:m個人坐第i輛車的等待時間花費+車費 
*/ 
int n,k,d,s,dp[110][110]; 
struct car{int t,z;
}a[110];
int main(){cin>>n>>k>>d>>s;for(int i=1;i<=k;i++){cin>>a[i].t>>a[i].z;}//dp初始化memset(dp,0x3f,sizeof(dp));dp[0][0]=0;//0個人0輛車的花費為0//遞推for(int i=1;i<=k;i++){//枚舉i輛車 for(int j=0;j<=n;j++){//枚舉j個人 dp[i][j]=dp[i-1][j];//如果第i輛車不坐人for(int m=1;m<=min(j,a[i].z);m++){//第i輛車坐m個人 dp[i][j]=min(dp[i-1][j-m]+m*a[i].t+d,dp[i][j]);}}} if(dp[k][n]==0x3f3f3f3f) cout<<"impossible";else cout<<dp[k][n]; return 0;
} 

文末彩蛋:

關注并查看老師的個人主頁,學習完整csp信奧賽完整系列課程: https://edu.csdn.net/lecturer/7901

在這里插入圖片描述

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

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

相關文章

Windows申請蘋果開發者測試證書Uniapp使用

注意事項 蘋果設備,最好是iPhone XS以上,要不然下載不了Apple DeveloperopenSSL 要是V1版本的來生成證書,要不然HBuilder報錯按步驟來,生成證書,生成標識符,添加測試設備,生成描述性文件注冊蘋果開發者賬號 (如果有蘋果賬號直接登錄) 蘋果開發者官網 開通付費 點擊右上…

dockercompose文件倉庫

mysql version: 3 # 使用docker-compose的版本&#xff0c;根據需要可以調整# 創建數據目錄 # mkdir -p /home/docker/mysql/mysql_data # mkdir -p /home/docker/mysql/mysql_logs # 給予適當的權限&#xff08;確保MySQL容器可以讀寫這些目錄&#xff09; # chmod 777 /ho…

【Linux】47.高級IO(1)

文章目錄 1. 高級IO1.1 五種IO模型1.2 高級IO重要概念1.2.1 同步通信 vs 異步通信1.2.2 阻塞 vs 非阻塞 1.3非阻塞IO1.3.1 fcntl1.3.2 實現函數SetNoBlock1.3.3 輪詢方式讀取標準輸入1.3.4 I/O多路轉接之select1.3.4.1 初識select&#xff1a;1.3.4.2 select函數原型1.3.4.3 理…

【Vulkan 入門系列】創建幀緩沖、命令池、命令緩存,和獲取圖片(六)

這一節主要介紹創建幀緩沖&#xff08;Framebuffer&#xff09;&#xff0c;創建命令池&#xff0c;創建命令緩存&#xff0c;和從文件加載 PNG 圖像數據&#xff0c;解碼為 RGBA 格式&#xff0c;并將像素數據暫存到 Vulkan 的 暫存緩沖區中。 一、創建幀緩沖 createFramebu…

ubuntu的普通用戶相關配置

1.切換到普通用戶下&#xff0c;不出現&#xff0c;用戶名主機ip, 環境變量被破壞&#xff0c; 參考&#xff1a;一文教你快速修改ubuntu終端顯示的主機名和用戶名_ubuntu終端名稱-CSDN博客 2.如果登陸進去無法使用ls,cd&#xff0c;vi等命令 2.1 環境變量 如果 PATH 被清空…

騰訊云×數語科技:Datablau DDM (AI智能版)上架云應用!

在數據爆炸式增長的時代&#xff0c;傳統的數據建模方式已難以滿足企業對敏捷性、智能化、自動化的需求。數語科技聯合騰訊云推出的 Datablau DDM 數據建模平臺&#xff08;AI智能版&#xff09;&#xff0c;基于AI語義建模技術&#xff0c;深度融合騰訊混元大模型能力&#xf…

Spark-streaming(一)

Spark-Streaming概述 Spark Streaming 用于流式數據的處理。 和 Spark 基于 RDD 的概念很相似&#xff0c;Spark Streaming 使用離散化流(discretized stream)作為抽象表示&#xff0c;叫作 DStream。 DStream 是隨時間推移而收到的數據的序列。 Spark-Streaming的特點&…

CS144 Lab 6 實戰記錄:構建 IP 路由器

1 實驗背景與目標 在 CS144 的 Lab 6 中&#xff0c;我們需要在之前實現的 NetworkInterface&#xff08;Lab 5&#xff09;基礎上構建一個完整的 IP 路由器。路由器的主要任務是根據路由表將接收到的 IP 數據報轉發到正確的網絡接口&#xff0c;并發送給正確的下一跳&#xf…

【網絡安全】社會工程學策略

1. 社會工程學簡介 社會工程攻擊是威脅行為者常用的攻擊方式。這是因為&#xff0c;誘騙人們提供訪問權限、信息或金錢通常比利用軟件或網絡漏洞更容易。 您可能還記得&#xff0c;社會工程學是一種利用人為錯誤來獲取私人信息、訪問權限或貴重物品的操縱技術。它是一個涵蓋性…

【含文檔+PPT+源碼】基于SpringBoot的開放實驗管理平臺設計與實現

項目介紹 本課程演示的是一款基于SpringBoot的開放實驗管理平臺設計與實現&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系統…

鴻蒙NEXT開發定位工具類 (WGS-84坐標系)(ArkTs)

import geoLocationManager from ohos.geoLocationManager; import { BusinessError, Callback } from ohos.base; import { LogUtil } from ./LogUtil; import { PermissionUtil } from ./PermissionUtil; import { map, mapCommon } from kit.MapKit; /*** 定位工具類 (WGS-8…

SSM從入門到上手-全面講解SSM框架的使用.

一、SSM框架整合 將Spring、Spring MVC和MyBatis結合在一起&#xff0c;形成一個高效且易于維護的Web應用程序架構。具體整合的方式如下&#xff1a; Spring管理Bean&#xff1a;Spring負責管理所有的Java對象&#xff0c;包括Service層、DAO層等。通過Spring的IoC容器進行依賴…

學員答題pk知識競賽小程序怎么做

制作學員答題PK知識競賽小程序&#xff0c;主要有以下步驟&#xff1a; 一、規劃設計 明確需求&#xff1a;確定小程序的使用場景是校園知識競賽、培訓機構考核還是企業內部培訓等。答題功能&#xff0c;規定答題的具體規則&#xff0c;包括題目類型&#xff08;單選、多選、…

視頻分析設備平臺EasyCVR視頻技術驅動下,監控上墻全組件解析與組網應用方案

隨著數字化進程的加速推進&#xff0c;視頻監控技術在工業、商業、社區等諸多領域得到了廣泛應用。盡管不同場景對監控功能的具體需求存在差異&#xff0c;但底層硬件架構具有顯著的共性特征。實際部署中&#xff0c;僅需依據網絡環境等實際情況&#xff0c;靈活調整設備的連接…

idea使用docker插件一鍵部署項目

一、首先保證我們電腦上已經安裝了docker docker -v查看docker版本&#xff0c;如果不能識別&#xff0c;需要先下載docker destop&#xff0c;在官網下載正常安裝即可。 安裝成功就可以使用docker 命令了 二、idea下載docker插件并配置docker參數 我是通過tcp連接docker服務…

SQL Tuning Advisor

什么是SQL Tuning Advisor STA可以用來優化那些已經被發現的高負載SQL. 默認情況下, Oracle數據庫在自動維護窗口中自動認證那些有問題的SQL并且執行優化建議&#xff0c;找尋提升高負載SQL執行計劃性能的方法. ** 如何查看自動優化維護窗口產生的報告? ** SQL> set ser…

uniapp-商城-31-shop頁面中的 我的訂單

前面的章節講了很多關于頁面 布局 的知識。 現在來看看其他欄目&#xff0c;我的訂單頁面。 1 頁面樣式圖 基本的樣式包含shop頁面 我的訂單 點擊我的訂單&#xff0c;跳轉到訂單頁面 點擊訂單的每一條訂單&#xff0c;跳轉到訂單詳情 2、創建訂單頁面 2.1 創建sub頁面文件…

深入探討JavaScript性能瓶頸與優化實戰指南

JavaScript作為現代Web開發的核心語言,其性能直接影響用戶體驗與業務指標。隨著2025年前端應用的復雜性持續增加,性能優化已成為開發者必須掌握的核心技能。本文將從性能瓶頸分析、優化策略、工具使用三個維度,結合實戰案例,系統梳理JavaScript性能優化的關鍵路徑。 一、Ja…

基于AI與drawio的圖表生成技術及其在學術研究中的應用前景分析

一、研究背景與沖突 在當今數字化時代&#xff0c;學術研究與信息傳播的方式發生了深刻變革。隨著數據量的爆炸式增長以及研究內容的日益復雜&#xff0c;高效、精準地呈現研究成果變得至關重要。圖表作為一種直觀、簡潔且信息承載量大的表達方式&#xff0c;在學術研究中扮演著…

uniapp 仿小紅書輪播圖效果

通過對小紅書的輪播圖分析&#xff0c;可得出以下總結&#xff1a; 1.單張圖片時容器根據圖片像素定高 2.多圖時輪播圖容器高度以首圖為錨點 3.比首圖長則固高左右留白 4.比首圖短則固寬上下留白 代碼如下&#xff1a; <template><view> <!--輪播--><s…