CSP-何以包郵?

題目描述
新學期伊始,適逢頓頓書城有購書滿 x 元包郵的活動,小 P 同學欣然前往準備買些參考書。
一番瀏覽后,小 P 初步篩選出 n 本書加入購物車中,其中第 i 本(1≤i≤n)的價格為 ai 元。
考慮到預算有限,在最終付款前小 P 決定再從購物車中刪去幾本書(也可以不刪),使得剩余圖書的價格總和 m 在滿足包郵條件(m≥x)的前提下最小。

試幫助小 P 計算,最終選購哪些書可以在湊夠 x 元包郵的前提下花費最小?

輸入格式
從標準輸入讀入數據。

輸入的第一行包含空格分隔的兩個正整數 n 和 x,分別表示購物車中圖書數量和包郵條件。

接下來輸入 n 行,其中第 i 行(1≤i≤n)僅包含一個正整數 ai,表示購物車中第 i 本書的價格。輸入數據保證 n 本書的價格總和不小于 x。

輸出格式
輸出到標準輸出。

僅輸出一個正整數,表示在滿足包郵條件下的最小花費。

樣例1輸入
4 100
20
90
60
60

樣例1輸出
110

樣例1解釋
購買前兩本書(20+90)即可包郵且花費最小。

樣例2輸入
3 30
15
40
30

樣例2輸出
30

樣例2解釋
僅購買第三本書恰好可以滿足包郵條件。

樣例3輸入
2 90
50
50

樣例3輸出
100

樣例3解釋
必須全部購買才能包郵。

子任務
70% 的測試數據滿足:n≤15;

全部的測試數據滿足:n≤30,每本書的價格 ai≤104 且 x≤a1+a2+?+an。

提示
對于 70% 的測試數據,直接枚舉所有可能的情況即可。


直接枚舉所有情況來求解(70%),注意枚舉的方法:利用&進行位的與運算,i&(1<<j)來表示第 i?位是否為 1。

#include <bits/stdc++.h>
using namespace std;
int main() {int n,m;cin>>n>>m;int arr[n];int sum=0;for (int i = 0; i < n; i++) {cin>>arr[i];sum+=arr[i];}long long l=pow(2,n);for (int i = 0; i < l; i++) {int k=0;for (int j = 0; j < n; j++) {if (i&(1<<j)) {k+=arr[j];}}if ((k>=m)&&(k<sum)) {sum=k;}}cout<<sum;
}

python版:

n,m=map(int,input().split())
# arr=list(map(int,input().split()))
arr = [int(input()) for x in range(n)]
su=sum(arr)
for i in range(2**n):k=0;for j in range(n):if(i&(1<<j)):k+=arr[j]if(k>=m)and(k<su):su=k
print(su)

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

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

相關文章

scala編碼

1、Scala高級語言 Scala簡介 Scala是一門類Java的多范式語言&#xff0c;它整合了面向對象編程和函數式編程的最佳特性。具體來講Scala運行于Java虛擬機&#xff08;JVM)之上&#xff0c;井且兼容現有的Java程序&#xff0c;同樣具有跨平臺、可移植性好、方便的垃圾回收等特性…

ubuntu server 20.04 備份和恢復 系統 LTS

ubuntu server 20.04 備份和恢復 系統 LTS tar命令系統備份與恢復&#xff08;還原or新裝&#xff09; 備份系統 cd / su root tar cvpzf backup.tgz --exclude/tmp --exclude/run --exclude/dev --exclude/snap --exclude/proc --exclude/lostfound --exclude/backup.tgz …

啟動游戲出現concrt140.dll錯誤的8種解決方法

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是找不到concrt140.dll文件。這個錯誤通常會導致程序無法正常運行&#xff0c;給用戶帶來困擾。本文將介紹找不到concrt140.dll無法繼續執行代碼的8個方法&#xff0c;同時探討concrt140.dll丟…

LinuxBasicsForHackers筆記 -- 文件系統和存儲設備管理

設備目錄/dev Linux 有一個特殊的目錄&#xff0c;其中包含代表每個連接設備的文件&#xff1a;相應命名的 /dev 目錄。 /dev中有很多設備列表。 特別令人感興趣的是設備 sda1、sda2、sda3、sdb 和 sdb1&#xff0c;它們通常是硬盤驅動器及其分區以及 USB 閃存驅動器及其分區…

理解基于 Hadoop 生態的大數據技術架構

轉眼間&#xff0c;一年又悄然而逝&#xff0c;時光荏苒&#xff0c;歲月如梭。當回首這段光陰&#xff0c;不禁感嘆時間的匆匆&#xff0c;仿佛只是一個眨眼的瞬間&#xff0c;一年的旅程已成為過去&#xff0c;而如今又到了畫餅的時刻了 &#xff01; 基于 Hadoop 生態的大數…

固態硬盤SSD

目錄 1.2 組成1.3 讀寫性能特性1.4 與機械硬盤相比的特點1.5 磨損均衡技術 \quad \quad SSD基于閃存技術Flash Memory, 屬于電可擦除ROM, 即EEPROM \quad 1.2 組成 \quad \quad \quad 系統對固態硬盤的讀寫是以頁為單位的 固態硬盤里的塊相當于機械硬盤里的磁道 固態硬盤里的頁…

Redis基礎系列-持久化

Redis基礎系列-持久化 文章目錄 Redis基礎系列-持久化1. 什么是持久化2. 為什么要持久化3. 持久化的兩種方式3.1 持久化方式1&#xff1a;RDB(redis默認持久化方式)3.11 配置步驟-自動觸發3.12 配置步驟-手動觸發3.12 優點3.13 缺點3.14 檢查和修復RDB快照文件3.15 哪些情況會觸…

每天一個Linux命令 -- (7)more命令

歡迎閱讀《每天一個Linux命令》系列&#xff01;在本篇文章中&#xff0c;將介紹Linux系統下的more命令&#xff0c;它用于逐屏顯示文件的內容。 概念 more命令是Linux系統下的文件逐屏顯示命令&#xff0c;用于逐屏顯示文件的內容。 命令操作 more命令的語法如下&#xff1…

ubuntu22.04 安裝cuda

CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由 NVIDIA 開發的一種并行計算平臺和編程模型。它允許開發者利用 NVIDIA 的 GPU&#xff08;圖形處理單元&#xff09;進行高效的計算處理。CUDA 通過提供一系列的 C、C 和 Fortran 擴展&#xff0c;使得開發…

我的NPI項目之Android電源系列 -- 關于剩余充滿時間的問題(一)

我的新項目是基于高通最新的5G平臺&#xff0c;但是由于還沒有拿到EVT。所以&#xff0c;就在目舊的平臺和OS上進行學習。遇到第一個問題就是插上type-c之后&#xff0c;充滿剩余時間異常的問題。 問題描述&#xff0c;在充電過程中&#xff0c;顯示充滿時間為“0 min left unt…

9.基于SpringBoot3+I18N實現國際化

1. 新建資源文件 在resources目錄下新建目錄i18n, 然后 新建messages_en.properties文件 user.login.erroraccount or password error&#xff01;新建messages_zh_CN.properties文件 user.login.error帳戶或密碼錯誤&#xff01;2. 新建LocaleConfig.java文件 Configurati…

2004-2021年上市公司環境規制強度相關數據

2004-2021年上市公司環境規制強度相關數據 1、時間&#xff1a;2004-2021年 2、指標&#xff1a;年份、股票代碼、股票簡稱、行業名稱、行業代碼、省份、城市、區縣、行政區劃代碼、城市代碼、區縣代碼、首次上市年份、上市狀態、所屬省份-工業增加值_億元、所屬省份-治理廢氣…

Flink流批一體計算(24):Flink SQL之mysql維表實時關聯

目錄 1.維表 2.數據準備 創建源數據 創建維度表 創建Sink表 3.配置任務 Flink SQL創建kafka源表 Flink SQL創建MySQL維表 Flink SQL創建MySQL結果表 編寫計算任務 核驗數據 1.維表 目前在實時計算的場景中&#xff0c;大多數都使用過MySQL、Hbase、redis作為維表引擎…

PTA:計算總分

題干 請編寫一個函數sum&#xff0c;函數的功能是&#xff1a;計算一個由結構體表示的包含多門課程成績組成的學生的總成績。 函數接口定義&#xff1a; double sumScore(struct student stu); 其中 stu是用戶傳入的參數。函數須返回學生的總成績。 裁判測試程序樣例&#x…

【華為數據之道學習筆記】3-7 報告數據治理

報告數據是指對數據進行處理加工后&#xff0c;用作業務決策依據的數據。它用于支持報告和報表的生成。 用于報告和報表的數據可以分為如下幾種。 用于報表項數據生成的事實表、指標數據、維度。 用于報表項統計和計算的統計函數、趨勢函數及報告規則。 用于報表和報告展示的…

AVFormatContext編解碼層:理論與實戰

文章目錄 前言一、FFmpeg 解碼流程二、FFmpeg 轉碼流程三、編解碼 API 詳解1、解碼 API 使用詳解2、編碼 API 使用詳解 四、編碼案例實戰1、示例源碼2、運行結果 五、解碼案例實戰1、示例源碼2、運行結果 前言 AVFormatContext 是一個貫穿始終的數據結構&#xff0c;很多函數都…

前后端分離項目跨域請求

一、前端vue項目 在項目中創建request.js文件&#xff0c;添加以下內容 import axios from "axios"; const api axios.create({ //這里配置的是后端服務提供的接口baseURL: "http://localhost:8080/web-demo",timeout: 1000} ); export default api; …

基于HSV空間色彩的圖像分割方法(含python代碼實現)

文章目錄 1. 介紹2. HSV顏色空間3. python實現HSV圖像分割3.1. 代碼實現3.2. 運行結果 1. 介紹 HSV顏色系統簡介&#xff1a; HSV 即使用色相&#xff08;Hue&#xff09;、飽和度&#xff08;Saturation&#xff09;、明度&#xff08;Value&#xff09;來表示色彩的一種方式…

HttpComponents: 領域對象的設計

1. HTTP協議 1.1 HTTP請求 HTTP請求由請求頭、請求體兩部分組成&#xff0c;請求頭又分為請求行(request line)和普通的請求頭組成。通過瀏覽器的開發者工具&#xff0c;我們能查看請求和響應的詳情。 下面是一個HTTP請求發送的完整內容。 POST https://track.abc.com/v4/tr…

根據對數器找規律、根據數據量猜題目解法

題目一 小虎去買蘋果&#xff0c;商店只提供兩種類型的塑料袋&#xff0c;每種類型都有任意數量。1&#xff09;能裝下6個蘋果的袋子2&#xff09;能裝下8個蘋果的袋子小虎可以自由使用兩種袋子來裝蘋果&#xff0c;但是小虎有強迫癥&#xff0c;他要求自己使用的袋子數量必須…