1. 程式人生 > >codeforces 878C 及部分set的用法

codeforces 878C 及部分set的用法

非常清楚與詳盡,點贊

#include <bits/stdc++.h>
using namespace std ;
const int maxn = 15 ;


struct node{
    int cap ;
    int num ;
    int max_vector[maxn] ;
    int min_vector[maxn] ;

    node(int k){
        cap = k ;
        for(int i = 0 ; i < cap ; i ++ ){
            scanf("%d" , &max_vector[i]) ;
            min_vector[i] = max_vector[i] ;
        }
        num = 1 ;
    }

    bool operator < ( const node & k ) const {
        for(int i = 0 ; i < cap ; i ++ ){
            if(max_vector[i] > k.min_vector[i])
                return false ;
        }
        return true ;
    }

    void unite( const node & k ) {
        for(int i = 0 ; i < cap ; i ++ ){
            min_vector[i] = min(min_vector[i] , k.min_vector[i]) ;
            max_vector[i] = max(max_vector[i] , k.max_vector[i]) ;
        }
        num += k.num ;
    }
};
set<node> save ;
int main(){

    int n , k ;
    scanf("%d %d" , &n , &k) ;
    save.clear() ;

    for(int i = 0 ; i < n ; i ++ ){

        node temp = node(k) ;

        auto l = save.lower_bound(temp) ;
        auto r = save.upper_bound(temp) ;
        //r -- ;
        while(l != r){
            temp.unite(*l) ;

            l = save.erase(l) ;
        }
        save.insert(temp) ;
        printf("%d\n" , (save.rbegin())->num) ;
        
    }
    return 0 ;
}

一下為g++ 6.4版本對set的部分嘗試,

注意迭代器如果要從末尾遍歷的化要用 rstart()方法,沒有end()-1

以及auto可以儲存地址,但是不能輸出,

erase()的返回下一個值

注意* 與->的使用

#include <bits/stdc++.h>
using namespace std ;
const int maxn = 15 ;


struct node{
    int a ;
    int b ;
    node(int a1 , int b1){
        a = a1 , b = b1 ;
    }

    bool operator < ( const node & k ) const {
        return a < k.a ;
    }
};
set<node> s2 ;
set<int> s ;
int main(){
    s.insert(1) ;
    cout << *s.lower_bound(2) << " " << *s.upper_bound(2) << endl ;

    s.insert(2) ;
    cout << *s.lower_bound(2) << " " << *s.upper_bound(2) << endl ;

    s.insert(3) ;
    cout << *s.lower_bound(2) << " " << *s.upper_bound(2) << endl ;

    auto l = s.lower_bound(2) ;

    l = s.erase(l) ;

    auto l1 = s.rbegin() ; /// meaningfully has a s.rend()
    ///auto l2 = s.end() - 1 ; is not possible to use

    set<int> :: iterator it ;
    for(it = s.begin() ; it != s.end() ; it ++ ){
        cout << *it << endl ;
    }
    /// if set<node>  should use it->element
    
    return 0 ;
}


相關推薦

codeforces 878C 部分set用法

非常清楚與詳盡,點贊 #include <bits/stdc++.h> using namespace std ; const int maxn = 15 ; struct node{ int cap ; int num ; i

Linux學習第三節課-指令基本概念部分指令用法

版本 orm otto ip add 命令解釋 bashrc 取消 margin init 3 Linux學習第三節課十四、交互式接口交互式接口:啟動終端後,在終端設備附加一個交互式應用程序,要麽是圖形化接口GUI,要麽是命令行接口CLI。十五、Shell相關概念1.She

Javascript之DOM的三大節點部分用法

測試 type 但我 包含 我們 htm str 分享 技術 DOM有三種節點:元素節點、屬性節點、文本節點。 一、用nodeType可以檢測節點的類型 節點類型 nodeType屬性值 元素節點 1 屬性節點 2 文本節點 3

Oracle SQL 部分特殊字元轉義escape的用法

在處理sql時,遇到insert 或update 的引數中含有特殊字元“&”,下劃線“_”, 單引號" ' "等時,要做轉義處理。 例:插入特殊字元'&' update userinfo set pageurl='myjsp?page=1&pagesiz

java -- Set 用法特點

Hashset 和 ListHashSet用法及特點 // HashSet 和 LinkedHashSet 用法及特點 /** * 編寫一個ArrayList集合 用Set去重 * 為了保證順序 我們用LinkedHashSet */ publ

const的用法部分面試題解析

1、const修飾常量 C++中用const限定符將一個物件轉化為一個常量,因為常量是不可以改變的,所以const修飾的變數在定義時必須初始化,否則將會出現錯誤。在全域性範圍內定義一個變數,一般是和定義該全域性變數得原始檔在一個資料夾裡面的所有原始檔都可以去訪

python列表解析式,生成器,部分內建函數使用方法

法國 set mime 惰性 ring pla ges 函數 calendar 標準庫datetime 需要導入datetime模塊: import datetime datetime模塊: 對日期,時間,時間戳的處理 datetime的類方法

命名規範部分書寫規範----參照阿裏巴巴java開發手冊

實現類 toc tcpudp size 全部 sla 工具類 apr alibaba 只列一些我能看懂的.... 1類名使用 UpperCamelCase 風格,必須遵從駝峰形式,但以下情形例外:DO / BO / DTO / VO / AO   正例:MarcoPolo

dos中定義變量與獲取常見的引用變量以及四則運算(set用法)

邏輯或 dos 擴展 use mysql\ gpo 當前 直接 var 在dos中使用set定義變量: set a=8 (註意等號兩邊沒有空格) 引用變量如: echo %a% 將打印a的值  (%a%是獲取變量a的值)

Eclipse智能提示部分快捷鍵

windows lips getters 符號 character alt+ 格式化 -a 目錄樹 1、java智能提示 (1). 打開Eclipse,選擇打開" Window - Preferences"。 (2). 在目錄樹上選擇"Java-Editor-Content

軟件測試必備-前端知識點之css基礎ps的用法

tro inf 軟件測試 blog gpo color 自己 ont 測量 CSS 一、 css定義 css樣式表、層疊樣式表,級聯樣式表 二、 css基礎語法 1、 寫style標簽,放在head標簽裏面的最後位置 2、 自己寫的css代碼,放在style標簽

P1382 樓房 set用法小結

+= 離散化 小時 r+ include www ont urn RR 這個sb題目,劇毒。。。 STL大法好 首先,我準備用經典的線段樹優化掃描線來做。之前的矩形周長把我困了數天導致我胸有成竹。 然後,敲代碼半小時,調試半個月......這個,sb,怎麽改都是0分+2個R

java面試常問問題部分答案(2018)

java 面試 2018年 基礎 一:java基礎1.簡述string對象,StringBuffer、StringBuilder區分string是final的,內部用一個final類型的char數組存儲數據,它的拼接效率比較低,實際上是通過建立一個StringBuffer,讓後臺調用appen

編譯安裝php-7.1.17部分擴展

部分 unit arm edi AR nss fix bcmath sqli Install php-7.1.17 ./configure --prefix=/usr/local/php-7.1.17 --disable-debug --enable-shmop --wi

windows 安裝 mysql 部分命令

刪除表 test update unity chan lec chang local window 下載地址:https://www.mysql.com/downloads/ 下載選擇:進入“MySQL Community Server”,選擇Windows(x86,32-

Ansible安裝部分模塊初步使用

輸入密碼 劃分 lag lease env ade led mage info Ansible安裝及初步使用 Ansible概述 由於互聯網的快速發展導致產品更新換代速度逐漸加快,運維人員每天都要進行大量的維護操作,仍舊按照傳統的方式進行維護工作會使得工作效率低下。這時,部

PHP命令空間namespaceuse的用法實踐總結

方便 ive import names hid bsp pre admin 不同 看PHP中的命名空間和use namespace app\admin\model; use think\Model; use think\Db; 綜上可以看出,命名空間就是相當於一個文件夾的路

Vue 虛擬Dom 部分生命周期初探

一個隊列 遍歷 ref 詳情 blank span info 循環 cto 踏入前端,步入玄學  17年底至18年初附帶做了vue的一些框架搭建,中途斷斷續續用了部分vue,時隔幾個月後的工作又拾起vue,對於一些原理性的知識淡忘了,正值這段時間使用中遇到了一些坑,

藥品管理系統畢業設計,論文部分代碼在線講解

src 創新 類型 用戶 文檔 datetime 管理 流行 comm 藥品管理系統畢業設計,論文及部分代碼在線講解 一、藥品管理系統研究背景與意義 我們國家,因為地大物博,人口眾多,所以對藥品的管控特別嚴格,一個優秀的藥品管理系統,對於國家,對於一家醫院的意義是重大的。一

STL:set用法總結

i++ sset strcpy code con ++ per 開始 turn 一:介紹 set是STL的關聯式容器,以紅黑樹(Red-Black Tree)作為底層數據結構。自動去重,保證每個元素唯一,並對數據進行排序。 命名空間為std,所屬頭文件為<set>