bzoj1150

来源:http://www.cnblogs.com/Christopher-Cao/archive/2016/01/08/5114961.html
-Advertisement-
Play Games

haha,貪心,邊界條件折騰了我一會兒 1 #include 2 #include 3 #include 4 #include 5 using namespace std ; 6 7 const int MAXN = 1000000 + 200 ; 8 int N , K ; 9 int dis ....


haha,貪心,邊界條件折騰了我一會兒
1 #include<cstdio> 2 #include<cctype> 3 #include<queue> 4 #include<algorithm> 5 using namespace std ; 6 7 const int MAXN = 1000000 + 200 ; 8 int N , K ; 9 int dis [ MAXN ] ; 10 int l [ MAXN ] ; 11 int r [ MAXN ] ; 12 int v [ MAXN ] ; 13 int vis [ MAXN ] ; 14 int ans ; 15 struct cmp { 16 bool operator () ( const int a , const int b ) { return v [ a ] > v [ b ] ; } ; 17 } ; 18 priority_queue < int , vector < int > , cmp > q ; 19 20 int main () { 21 scanf ( "%d%d" , & N , & K ) ; 22 for ( int i = 1 ; i <= N ; ++ i ) scanf ( "%d" , dis + i ) ; 23 for ( int i = 1 ; i < N ; ++ i ) v [ i ] = dis [ i + 1 ] - dis [ i ] ; 24 for ( int i = 1 ; i < N - 1 ; ++ i ) r [ i ] = i + 1 ; 25 for ( int i = 2 ; i < N ; ++ i ) l [ i ] = i - 1 ; 26 for ( int i = 1 ; i < N ; ++ i ) q . push ( i ) ; 27 fill_n ( vis + 1 , N , 1 ) ; 28 v [ 0 ] = 1000000000 + 1 ; 29 v [ N ] = 1000000000 + 1; 30 while ( K -- ) { 31 while ( ! vis [ q . top () ] ) q . pop () ; 32 const int o = q . top () ; q . pop () ; 33 ans += v [ o ] ; 34 vis [ l [ o ] ] = 0 ; 35 vis [ r [ o ] ] = 0 ; 36 v [ o ] = v [ l [ o ] ] + v [ r [ o ] ] - v [ o ] ; 37 q . push ( o ) ; 38 l [ o ] = l [ l [ o ] ] ; r [ o ] = r [ r [ o ] ] ; 39 r [ l [ o ] ] = l [ r [ o ] ] = o ; 40 } 41 printf ( "%d\n" , ans ) ; 42 }

 


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

-Advertisement-
Play Games
更多相關文章
  • ADO.NET在Java中的對應技術是JDBC,企業庫DataAccessApplicationBlock模塊在Java中的對應是spring-jdbc模塊,EntityFramework在Java中對應的ORM是Hibernate。關係資料庫、SQL、資料庫事務、分散式事務的概念都是通用的。1.J...
  • 提要01 IO流(BufferedWriter)02 IO流(BufferedReader)03 IO流(通過緩衝區複製文本文件)04 IO流(readLine的原理)05 IO流(MyBufferedReader)06 IO流(裝飾設計模式)07 IO流(裝飾和繼承的區別)01 IO流(Buffe...
  • 以前使用curl的多線程並不是真正的多線程,只是一種模擬的多線程,現在使用pthreads來實現真正意義上的多線程。下載: windows下: http://windows.php.net/downloads/pecl/releases/pthreads/0.0.45/ mac、unix、...
  • 如何將二維數組作為函數的參數傳遞,這是涉及到多維數組時經常要遇到的問題。長期來,我們往往知其然,但不知其所以然。這裡簡單總結一下。1.《C程式設計》中講到:可以用二維數組名作為實參或者形參,在被調用函數中對形參數組定義時可以指定所有維數的大小,也可以省略第一維的大小說明,如:void Func(in...
  • 博客地址:http://www.cnblogs.com/oumyye/問題一:==與equal的區別?==和 equals 都是比較的,而前者是運算符,後者則是一個方法,基本數據類型和引用數據類型都可以使用運算符==,而只有引用類型數據才可以使用 equals,下麵具體介紹一下兩者的用法以及區別.=...
  • 首先非常感謝11期的學長薜保庫提供了一種非常實用函數遞歸方法,讓實現三層菜單如此簡單,不過對所遍歷的嵌套字典或列表格式有所要求。有特定的環境下非常實用。 主要針對中國的各省市區進行展示,採用了百度的js介面: http://passport.baidu.com/js/site...
  • 1、業務模塊與數據模塊分離在實際開發中,我們項目的架構業務模塊和數據模塊是分離的,舉個例子,假設我們的項目有"人員管理模塊"和"酒店管理模塊"兩個模塊,按照上一章的介紹,我們會建立下圖所示的項目結構:其中,人員管理模塊的controller、service、dao、mapper都在一個項目中,而在實...
  • 題目:取一個整數a從右端開始的4~7位。程式分析:可以這樣考慮:(1)先使a右移4位。(2)設置一個低4位全為1,其餘全為0的數。可用~(~0>4;c=~(~0<<4);d=b&c;printf("%o\n%o\n",a,d);}
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...