洛谷P2676 超級書架

来源:http://www.cnblogs.com/zwfymqz/archive/2017/10/20/7700838.html
-Advertisement-
Play Games

題目描述 Farmer John最近為奶牛們的圖書館添置了一個巨大的書架,儘管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了。現在,只有書架的頂上還留有一點空間。 所有N(1 <= N <= 20,000)頭奶牛都有一個確定的身高H_i(1 <= H_i <= 10,000)。設所有奶牛身高的 ...


題目描述

Farmer John最近為奶牛們的圖書館添置了一個巨大的書架,儘管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了。現在,只有書架的頂上還留有一點空間。 所有N(1 <= N <= 20,000)頭奶牛都有一個確定的身高H_i(1 <= H_i <= 10,000)。設所有奶牛身高的和為S。書架的高度為B,並且保證 1 <= B <= S < 2,000,000,007。 為了夠到比最高的那頭奶牛還要高的書架頂,奶牛們不得不象演雜技一般,一頭站在另一頭的背上,疊成一座“奶牛塔”。當然,這個塔的高度,就是塔中所有奶牛的身高之和。為了往書架頂上放東西,所有奶牛的身高和必須不小於書架的高度。顯然,塔中的奶牛數目越多,整座塔就越不穩定,於是奶牛們希望在能夠到書架頂的前提下,讓塔中奶牛的數目儘量少。 現在,奶牛們找到了你,希望你幫她們計算這個最小的數目。

輸入輸出格式

輸入格式:

 

  • 第1行: 2個用空格隔開的整數:N 和 B * 第2..N+1行: 第i+1行是1個整數:H_i

 

輸出格式:

 

  • 第1行: 輸出1個整數,即最少要多少頭奶牛疊成塔,才能夠到書架頂部

 

輸入輸出樣例

輸入樣例#1:
6 40
6
18
11
13
19
11
輸出樣例#1:
3

說明

輸入說明:

一共有6頭奶牛,書架的高度為40,奶牛們的身高在6..19之間。

輸出說明:

一種只用3頭奶牛就達到高度40的方法:18+11+13。當然還有其他方法,在此不一一列出了。

 

 

貪心

排個序,從大的開始枚舉,滿足條件就退出

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #define ls k<<1
 7 #define rs k<<1|1
 8 using namespace std;
 9 const int MAXN=400400;
10 inline void read(int &n)
11 {
12     char c=getchar();n=0;bool flag=0;
13     while(c<'0'||c>'9')    c=='-'?flag=1,c=getchar():c=getchar();
14     while(c>='0'&&c<='9')    n=n*10+c-48,c=getchar();flag==1?n=-n:n=n;
15 }
16 int n,h;
17 int a[MAXN];
18 int main()
19 {
20     read(n);read(h);
21     for(int i=1;i<=n;i++)    read(a[i]);
22     sort(a+1,a+n+1);
23     int now=0;
24     for(int i=n;i>=1;i--)
25     {
26         now+=a[i];
27         if(now>=h)    {    printf("%d",n-i+1);    exit(0);    }
28     }
29     return 0;
30 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第二章 取代netcat 一開始對於下麵這段代碼不是太理解: 之後在網上查詢了關於socket.recv函數的詳細說明: recv先檢查套接字s的接收緩衝區,如果s接收緩衝區中沒有數據或者協議正在接收數據,那麼recv就一直等待,直到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收 ...
  • 0.目錄 1. "前言" 2. "通過pymssql與資料庫的交互" 3. "通過pyqt與界面的交互" 4. "UI與資料庫的交互" 5. "最後的main主函數" 1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直覺得,機器學習、手寫體識別這種程 ...
  • # Python學習筆記(十三): 1. 模塊 2. 包 3. if name == main 4. 軟體目錄結構規範 5. 作業-ATM+購物商城程式 ...
  • 用正則表達式(regex)匹配多項式(polynomial),並提取出各項繫數、指數。 ...
  • 1)POP--面向過程編程(Process-oriented programming ): 面向過程編程是以功能為中心來進行思考和組織的一種編程方法,它強調的是系統的數據被加工和處理的過程,在程式設計中主要以函數或者過程為程式的基本組織方式,系統功能是由一組相關的過程和函數序列構成。面向過程強調的是 ...
  • 以下總結出自己在學習python期間常用的網址或者資源,其中包括很多人的博客,方便自己從這個入口查找資源。 1.https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/ (廖雪峰的官方網站 ...
  • MORE+ 這段代碼執行時會發生錯誤,如題。 原因在於:new.href 使用java 的關鍵字,把new改成news後就不再報錯。 ...
  • java特點; 1.面對象性 2.可移植性/跨平臺性 java組成; jdk(java工具開發工具包) / \ \ jre 指令集合 api和常用java包 (運行環境)(編輯器) / jvm(java虛擬器) java執行過程:java文件〉編輯器(javac)〉class文件〉jvm(解釋執行) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...