1. 程式人生 > >BZOJ 3105 線性基 高斯消元

BZOJ 3105 線性基 高斯消元

思路:
按照從大到小排個序
維護兩個陣列 一個是消元后的 另一個是 按照消元的位置排的
不斷 維護從大到小
(呃具體見程式碼)

//By SiriusRen
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
#define int long long
#define N 105
int n,a[N],b[N],flag=1,ans;
signed main(){
    scanf("%lld",&n);
    for(int i=1
;i<=n;i++)scanf("%lld",&a[i]),ans+=a[i],b[i]=a[i]; sort(a+1,a+1+n,greater<int>()),sort(b+1,b+1+n,greater<int>()); for(int i=1<<30,j;i;i>>=1){ for(j=flag;j<=n;j++)if(a[j]&i)break; if(j==n+1)continue; for(int k=j-1;k>=flag;k--)swap(a[k+1
],a[k]),swap(b[k+1],b[k]); for(int k=1;k<=n;k++)if(k!=flag&&(a[k]&i))a[k]^=a[flag]; ans-=b[flag]; flag++; } printf("%lld\n",ans?ans:-1); }

這裡寫圖片描述

相關推薦

BZOJ 3105 線性

思路: 按照從大到小排個序 維護兩個陣列 一個是消元后的 另一個是 按照消元的位置排的 不斷 維護從大到小 (呃具體見程式碼) //By SiriusRen #include <c

【bzoj4004】【JLOI2015】裝備購買 (線性+

complete truct algo turn insert input 否則 沒有 main Description 臉哥最近在玩一款神奇的遊戲,這個遊戲裏有 n 件裝備,每件裝備有 m 個屬性,用向量zi(aj ,.....,am) 表示 (1 <= i <

題解 外星千足蟲(線性+)

置疑 pac 想要 %d ++ ldb printf ins n+1 題解 luogu外星千足蟲(線性基+高斯消元) 題目 luogu題目傳送門 題解想法 首先需要知道這是個異或方程對吧 然後既然看到位運算,又有這麽多,就可以考慮線性基(做題技巧),那我們就丟進去 接下

hdu3949 XOR (線性())

hdu3949 XOR 題意: T組資料, 每組資料給n個數,m個詢問,對於每個詢問給出一個k,詢問給的n個數,選取任意非空子集,能異或出的數中第k小的,重複的數不計算。 資料範圍 T&

[SDOI2006]線性方程組——模板

題目大意: 求解線性方程組。 判斷惟一解,無窮解,無解的三種情況。 高斯消元: 洛谷的模板題好像怎麼打都可以過,也沒有具體區分無窮解和無解的情況,看來這個題才是高斯消元的真正模板。 惟一解: 這個大概是最好判斷的了,在每次消元的時候都沒有出現係數全部都為0的情況

BZOJ 4184 shallot 分治+

題目大意:給定一個可重集合,每個時刻加入一個數或刪除一個數,每次操作後詢問子集的最大異或和 每個數存在的時間都是一些區間 按照時間分治,維護線性基,時間複雜度O(nlognlogai) 然而資料範圍是50W,出題人在想什麼。。。。 #include

線性方程組——の板子

ATP記得它在很久以前看過一點點高斯消元的東西然後做過一點點題目。。但是當時實在是太zz了所以本來就沒有很懂這個東西現在更是忘得差不多了。。 所以現在就當重新學一遍了QwQ 一點口胡的解釋 高斯消元。。聽起來這個名字很高大上實際上它也確實很

[ 線性] BZOJ 4269 再見Xor

這就很水了 #include<cstdio> #include<cstdlib> #include<algorithm> using namespace std;

BZOJ 2844: albus就是要第一個出場 線性

2844: albus就是要第一個出場 Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 1416  Solved: 598 [Submit][Status][Discuss] Description 已知一個長度為n的正整

【BZOJ2844】albus就是要第一個出場 線性

子集 高斯 efi continue clas sum ext ++ pre 【BZOJ2844】albus就是要第一個出場 Description 已知一個長度為n的正整數序列A(下標從1開始), 令 S = { x | 1 <= x <= n },

【BZOJ2460】[BeiJing2011]元素 貪心+線性

%d 很好 jin 種類 namespace 隨著 clu rip ret 【BZOJ2460】[BeiJing2011]元素 Description 相傳,在遠古時期,位於西方大陸的 Magic Land 上,人們已經掌握了用魔法礦石煉制法杖的技術。那時人們就

【BZOJ2322】[BeiJing2011]夢想封印 線性+DFS+set

思考 包含 cst 計算 next 裏的 是否 異或和 無法使用 【BZOJ2322】[BeiJing2011]夢想封印 Description 漸漸地,Magic Land上的人們對那座島嶼上的各種現象有了深入的了解。 為了分析一種奇特的稱為夢想封印(Fanta

bzoj2115 [Wc2011] Xor—— & 異或線性

++ r+ n) 沒有 get TP pro bzoj () 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=2115 異或兩次同一段路徑的權值,就相當於沒有走這段路徑; 由此可以得到啟發,對於不同的走法,也許只需要找

線性版本)

首先給出幾篇部落格:https://blog.sengxian.com/algorithms/linear-basis                          http

bzoj3105(,貪心,線性,擬陣)

Description 傳統的Nim遊戲是這樣的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴數量可以不同)。兩個遊戲者輪流操作,每次可以選一個火柴堆拿走若干根火柴。可以只拿一根,也可以拿走整堆火柴,但不能同時從超過一堆火柴中拿。拿走最後一根火柴的遊戲者勝利。

2018.12.07【LOJ114】k 大異或和(線性)(

傳送門 解析: 先求一個線性基,然後高斯消元解線性空間,然後基本上就是亂搞把第 k k k

bzoj2155(線性)

Description Input 第一行包含兩個整數N和 M, 表示該無向圖中點的數目與邊的數目。 接下來M 行描述 M 條邊,每行三個整數Si,Ti ,Di,表示 Si 與Ti之間存在 一條權值為 Di的無向邊。 圖中可能有重邊或自環。 Output 僅

&線性模板

高斯消元:poj1222#include <iostream> #include <cstdio> #define N 5 #define M 6 #define L 10 us

[Luogu P2973&BZOJ 1778][USACO10HOL]趕小豬DOtP(+期望)

http ios iostream 爆炸 head swa sca 選擇 main Description 一個無向圖,節點1有一個炸彈,在每個單位時間內,有可能在這個節點炸掉,也有p/q的概率隨機選擇一條出去的路到其他的節點上。問最終炸彈在每個節點上爆炸的概率。 So

BZOJ 2728 HNOI2012 與非

sca 邏輯 都是 -- cstring 位運算 不同的 ret asi 題目大意:給定k位二進制下的n個數,求[l,r]區間內有多少個數能通過這幾個數與非得到 首先觀察真值表 我們有A nand A = not A 然後就有not ( A nan