【轉載】線性基的更多操作!
查詢某個數
轉自帥到報警
就是查找某個數是否可以由這 n 個數中任一個數異或得到。首先還是剛才那個定理:線性基的值域與原數組的值域相同。
還有我們要發現一個性質:如果 x1 ^ x1 = x3, 那麽 x3 ^ x2 = x1,且 x3 ^ x1 = x2(可以自己證明一下)。
我們也是從低到高掃這個數的每一位,如果這第 i 位為 1,就異或上 Pi,然後知道處理到最後一位。如果變成 0 了,那麽就是可以的。
查詢最值
轉自Marser
最大值可以用貪心的思想來做。
從高到低遍歷數組,如果ans^第i位的那個數後大於ans,則^這個數,因為這樣可以保證ans第i位為1,且後面不可能有機會改變第i位。很顯然,數組中最小的非零數就是最小值。
查詢第k大值
轉自Marser
首先將數組中的所有數變成包含這個最高位且可以通過Xor得到的最小值。
具體實現方法就是每一位向後掃,若Xor後變小,則Xor。
之後就可以發現第k大只要將k改為二進制後,將二進制所對應的位置的數Xor起來即可。
【轉載】線性基的更多操作!
相關推薦
【轉載】線性基的更多操作!
一位 如果 xor 不可 異或 包含 最大 處理 最大值 查詢某個數 轉自帥到報警 就是查找某個數是否可以由這 n 個數中任一個數異或得到。首先還是剛才那個定理:線性基的值域與原數組的值域相同。 還有我們要發現一個性質:如果 x1 ^ x1 = x3, 那麽 x3 ^ x
[洛谷3812]【模板】線性基
ons int() 方法 algorithm 每一個 枚舉 nbsp max tchar 題目大意: 給你n個數,求這些數能異或出的數的最大值。 思路: 線性基模板。 b中的數滿足對於每個b[i],最高位在第i位。 構造方法就是對於每個數字,從
【轉載】JAVA中IO流操作的基本規律總結
reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是
洛谷P3812 【模板】線性基
int clas ott style psu ont radi reg query 題目背景 這是一道模板題。 題目描述 給定n個整數(數字可能重復),求在這些數中選取任意個,使得他們的異或和最大。 輸入輸出格式 輸入格式: 第一行一個數n,表示元素個數
題解——洛谷P3812【模板】線性基
打了 () 運算優先級 運算 pac sca bre std 線性基 學了下線性基 使用好像並不復雜 打了板子 但是要註意位運算優先級 #include <cstdio> #include <algorithm> #include &
【模板】線性基
ans clu using mem sizeof efi 輸入輸出 std ont 線性基就是一種可以維護異或和的東西,我還沒太懂它到底有什麽用,但是很好寫,而且思路也很清晰,所以板子還是很簡單的。 題幹: 題目背景 這是一道模板題。 題目描述 給定n個整
【模板】線性基(洛谷P3812)
size for 最大 個數 cstring 異或 namespace 元素 線性 Description 給定\(n\)個整數(數字可能重復),求在這些數中選取任意個,使得他們的異或和最大。 Input 第一行一個數\(n\),表示元素個數 接下來一行\(n\
【轉載】js原生的節點操作
【轉載自JS獲取子節點、父節點和兄弟節點的若干種方式 – 作者:-老K-】 一、js獲取子節點的方式 1.通過獲取dom方式直接獲取子節點 其中test的父標籤id的值,div為標籤的名字。getElementsByTagName是一個方法。返回的是一個數組。在訪問的時候要按陣列的形
【轉載】Linux Yum安裝多個MYSQL例項
LINUX作業系統:centOS6.3 64bit(安裝了系統預設開發包) 資料庫一: MYSQL版本:mysql-5.0.56 PORT:3306 系統目錄:/usr/local/mysql3306 資料庫二: MYSQL版本:mysql-5.1.72 PORT:3307
P3812 【模板】線性基
不得不說,線性基是一個神奇的東西 它維護的東西與“異或”密切相關 題意: 給定n個整數(數字可能重複),求在這些數中選取任意個,使得他們的異或和最大。 當然,也可以最小,甚至,可以求任意異或和第k大!(哇,好niubi) 做法:開一個數組a[MAXN],MAXN是數字最高位數。 a[i
【轉載】JAVA多線程讀取、操作List集合
線程 nbsp static 一點 stat lang 素數 param 應用 本文轉載自:http://blog.csdn.net/wang1989cs/article/details/47663565 import java.util.ArrayList; impor
【高階資料型別】- 3. 切片的更多操作方法
我們已經知道,在進行“切片”操作的時候需要指定元素下界索引和元素上界索引,就像這樣: numbers3[1:4]
【轉載】5天不再懼怕多線程——第一天 嘗試Thread
堆棧 () ole 命名空間 sage console 我們 exc add 原本準備在mongodb之後寫一個lucene.net系列,不過這幾天用到多線程時才發現自己對多線程的了解少之又少,僅僅停留在lock上面, 故這幾天看了下線程參考手冊結合自己的心得整理一下放在博
【轉載】5天不再懼怕多線程——第四天 信號量
win 釋放 對象 sem eap 調用 state logs 一份 今天整理“信號量”的相關知識,其實想想也蠻有趣的,鎖,互斥,信號量都可以實現線程同步,在framework裏面主要有三種。 <1>:ManualResetEvent <2>:Aut
【轉載】5天不再懼怕多線程——第五天 線程池
執行 targe 空閑 timer max als htm port 電腦 說到多線程,不可不說線程池,C#中關於池的概念很多,今天來整理下ThreadPool的使用。 是的,如果你很懶,如果你的執行任務比較短,如果你不想對線程做更精細的控制,那麽把這些繁瑣的東西
【轉載】5天不再懼怕多線程——第三天 互斥體
多線程 str .get 整理 tle ram nbsp line 一點 沒想到我的前兩篇文章還挺受歡迎的,謝謝大家,今天整理下Mutex的使用。 一:Mutex 首先看下MSDN對它的解釋: 不錯,出現了一個亮點,可用於“進程間同步“,既然進程間都可以同步,那
【轉載】5天不再懼怕多線程——第二天 鎖機制
mon www downgrade current 鎖機制 鎖定 tex 針對 read 當多個線程在並發的時候,難免會碰到相互沖突的事情,比如最經典的ATM機的問題,並發不可怕,可怕的是我們沒有能力控制。 線程以我的理解可以分為三種 ① 鎖。 ② 互斥。 ③ 信號。
Selenium2+python自動化71-多個瀏覽器之間的切換【轉載】
logs ant utf-8 動態 不同的 ova data- 目的 有時 前言 有時候一些業務的功能涉及到多個系統,需要在web系統1打開造一些數據,然後用到某些參數是動態生成的,需要調用web系統2裏面的參數。 舉個簡單例子:在做某些業務的時候,需要手機短信驗證碼,
對程序員更好的建議【轉載】
掌握 最重要的 人的 很多 出現 代碼量 做出 國內 足夠 必須寫夠十萬行代碼,不要心存僥幸 程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量的程序,才會有感覺,這是一個苦力活,沒有任何捷徑可走。 計算機是一門實踐性的科學,沒有動手能力做支撐,很難做出好的科研成果。我的一
每天一個linux命令(文件操作):【轉載】find命令之xargs
溢出 系統性能 問題 ameba pri 幾分鐘 body 只有一個 獲取參數 在使用 find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之