紀念品分組 2007年NOIP全國聯賽普及組

来源:http://www.cnblogs.com/soul-love/archive/2016/03/20/5271591.html
-Advertisement-
Play Games

元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值相對均衡,他要把購來的紀念品根據價格進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的價格之和不能超過一個給定的整數。為了保證在儘量短的時間內發完所有紀念品,樂樂希望分組的數目最少。 你的任務是寫一個


題目描述

       元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值相對均衡,他要把購來的紀念品根據價格進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的價格之和不能超過一個給定的整數。為了保證在儘量短的時間內發完所有紀念品,樂樂希望分組的數目最少。

你的任務是寫一個程式,找出所有分組方案中分組數最少的一種,輸出最少的分組數目。

輸入輸出格式

輸入描述:

包含n+2行:

第1行包括一個整數w,為每組紀念品價格之和的上限。

第2行為一個整數n,表示購來的紀念品的總件數。

第3~n+2行每行包含一個正整數pi (5 <= pi <= w),表示所對應紀念品的價格。

輸出描述:

僅一行,包含一個整數,即最少的分組數目。

輸入輸出樣例

輸入樣例#1:

100

9

90

20

20

30

50

60

70

80

90

輸出樣例#1:

6

思路

先將數據快排,然後for迴圈將第一個與最後一個相加,如果得數不大於紀念品價格之和的上限,第一個與最後一個為一組。否則,將第二個與最後一個匹配,以此類推。

代碼

#include<stdio.h>
long long a[30010];
void qsort(int l,int r)
{
    int i,j,mid,p;
    i=l;j=r;
    mid=a[(l+r)/2];
    do
    {
        while(a[i]<mid)
          i++;
        while(a[j]>mid)
          j--;
        if(i<=j)
        {
            p=a[i];
            a[i]=a[j];
            a[j]=p;
            i++;j--;
        }
    }while(i<=j);
    if(l<j)
      qsort(l,j);
    if(i<r)
      qsort(i,r);
}
int main()
{
    long long n,i,w,k=0,j,l;
    scanf("%lld%lld",&w,&n);
    for(i=1;i<=n;i++)
       scanf("%lld",&a[i]); 
    qsort(1,n);
    l=1;
    for(i=n;i>=l;i--)
    {
        if(a[i]+a[l]<=w)
            l++;
        k++;
    }
    printf("\n%lld",k);
    return 0;
}
View Code

 


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

-Advertisement-
Play Games
更多相關文章
  • 來源:微信公眾號CodeL 以下是個人學習之路的簡單分享,不足之處歡迎大神們批評指正! 在網站開發的初期,我們沒有考慮更多的東西,也沒有對緩存進行系統的設計,而是直接使用了應用程式緩存對象Cache,但由於系統架構的不斷完善,在分散式系統架構中只依靠Cache明顯不夠,無法實現分散式管理,所以後期我
  • 我們是否可以把從前端接受的JSON字元串轉換成字典集合呢?比如從前端接收:{'size':'10', 'weight':'10kg'}在服務端轉換成:[{size:"10"},{weight:"10kg"}]這樣的字典集合通過Newtonsoft的DeserializeObject<Dictiona
  • 練習教科書第22~25頁單元測試練習,要求自行安裝Visual Studio開發平臺,版本至少在2010以上,要求把程式安裝過程和練習過程寫到博客上,越詳細越好,要圖文並茂,沒有書的同學可以向班內助教同學借閱。 單元測試: 首先新建項目->visual C# 類庫 然後輸入單元測試代碼: 如圖1.1
  • 對於一個企業級項目開發,模塊化是非常重要的。 預設Mvc框架的AreaRegistration對模塊化開發真的支持很好嗎?真的有很多複雜系統在使用預設的分區開發的嗎?我相信大部分asp.net的技術團隊最開始都研究過分區,甚至在實際項目裡面有嘗試運用,但是碰到了種種問題"各種坑",最後回頭是岸放棄了
  • 要求:共1000條數據,第一次批量插入100條,第二次批量插入101到200條,依次插入數據; 實現方式這裡選擇了兩種常用的方式,都是使用List操作; 第一種實現思路如下: <1> 原先存放數據的List為recordList,求出共需批量處理的次數; <2> 新建一個List為list,迴圈後,
  • 利用PBFunc工具在Powerbuilder解析json,只需要調用getattribute方法來獲取 ls_val返回為 朵朵貝貝嬰兒鞋 解析後的結果 demo下載地址:http://download.csdn.net/detail/my_aa/9465068
  • 閱讀目錄 Spring整合Hibernate有什麼好處? 1、由IOC容器來管理Hibernate的SessionFactory 2、讓Hibernate使用上Spring的聲明式事務 整合前準備: 持久化類: Dao層: DaoImpl: Service層: ServiceImpl:
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...