1. 程式人生 > >線性基 學習筆記

線性基 學習筆記

1 #include <cstdio> 2 #include <iostream> 3 #include <queue> 4 #include <algorithm> 5 #include <cstring> 6 #include <set> 7 using namespace std; 8 9 #define N 100010 10 #define M 400010 11 typedef long long ll; 12 13 const int Mod=1000000007; 14
int n,m,tot,sz; 15 int head[N],to[M],nxt[M],t[N],p2[M]; 16 ll w[M],dis[N],A[M],P[63]; 17 bool vis[N]; 18 19 void Add_Edge(int x,int y,ll z){to[tot]=y,nxt[tot]=head[x],w[tot]=z,head[x]=tot++;} 20 21 void Dfs(int x,ll s) 22 { 23 vis[x]=true; dis[x]=s; t[++t[0]]=x; 24 for (int
i=head[x];i!=-1;i=nxt[i]) 25 { 26 int y=to[i]; 27 if (vis[y]) A[++sz]=s^w[i]^dis[y]; 28 else Dfs(y,s^w[i]); 29 } 30 } 31 32 void Guass() 33 { 34 memset(P,0,sizeof(P)); 35 for (int i=1;i<=sz;i++) 36 { 37 for (int j=61;j>=0
;j--) 38 { 39 if ((A[i]>>j)&1) 40 { 41 if (P[j]) A[i]^=P[j]; 42 else {P[j]=A[i]; break;} 43 } 44 } 45 } 46 } 47 48 int f(int x){return 1ll*x*(x-1)/2%Mod;} 49 50 int Solve() 51 { 52 int res=0,r=0; 53 for (int i=0;i<=61;i++) if (P[i]) r++; 54 for (int k=0;k<=61;k++) 55 { 56 bool flag=false; 57 for (int j=0;j<=61;j++) if ((P[j]>>k)&1) flag=true; 58 59 int cnt[2]={0}; int tmp; 60 for (int i=1;i<=t[0];i++) cnt[(dis[t[i]]>>k)&1]++; 61 62 tmp=(f(cnt[0])+f(cnt[1]))%Mod; 63 if (flag) tmp=1ll*tmp*p2[r-1]%Mod,tmp=1ll*p2[k]*tmp%Mod,res=(res+tmp)%Mod; 64 65 tmp=1ll*cnt[0]*cnt[1]%Mod; 66 if (flag) tmp=1ll*tmp*p2[r-1]%Mod; 67 else tmp=1ll*tmp*p2[r]%Mod; 68 tmp=1ll*p2[k]*tmp%Mod; res=(res+tmp)%Mod; 69 70 } 71 72 return res; 73 } 74 75 int main() 76 { 77 //freopen("in.in","r",stdin); 78 //freopen("out.out","w",stdout); 79 80 p2[0]=1; 81 for (int i=1;i<M;i++) p2[i]=1ll*p2[i-1]*2%Mod; 82 83 int x,y,ans=0; ll z; 84 scanf("%d%d",&n,&m); 85 memset(head,-1,sizeof(head)); 86 for (int i=1;i<=m;i++) 87 { 88 scanf("%d%d%I64d",&x,&y,&z); 89 Add_Edge(x,y,z); 90 Add_Edge(y,x,z); 91 } 92 for (int i=1;i<=n;i++) if (!vis[i]) 93 { 94 sz=t[0]=0; 95 Dfs(i,0); 96 Guass(); 97 ans=(ans+Solve())%Mod; 98 } 99 printf("%d\n",ans); 100 return 0; 101 }

相關推薦

線性學習筆記

pre 貢獻 mes 通過 fin git while line for 線性基是幹嘛的呢? 給定n個數,求所有數的異或和最大是多少? 求解這類問題的時候,就需要線性基了 個人感覺線性基本身就一種貪心。 首先定義\(base[i]\)表示最高位1在i位的數是什麽 對於新進來

線性 學習筆記

1 #include <cstdio> 2 #include <iostream> 3 #include <queue> 4 #include <algorithm> 5 #include <cstring> 6 #

線性學習

merge font color opened 模板 min() 分享 拆分 min 線性基 所謂基就是基底 線性基就可以理解為n個數異或(xor)的基底 性質 1,線性基的異或集合中不存在0(很容易證明:根據xor的性質即可) 2,線性基能相互異或得到原集合的所有相互異或

學習筆記線性代數學習筆記

n階行列式 相關性 等於 線性代數 筆記 class ... 學習 一行 慢慢的學吧……先挖個坑提醒自己好好填【霧】 一、行列式相關 n階行列式定義:Σ(-1)t a1p1*a2p2*....anpn(p∈(1~n的全排列),t為此排列中的逆序對個數) 相關性質: 1.

線性代數學習筆記

www. groov -html per mis haskell con times aps 線性代數學習筆記二 線性代數學習筆記二 目录 1. 線性方程組 1 線性方程組 矩陣記號是為解

MIT 線性代數 學習筆記&思維導圖

最近在看花書(深度學習),看到第一章的關於線性代數的知識,雖然自己在大一的時候就學過線性代數,但是回想起來對線性代數的掌握僅限於皮毛,缺乏系統地掌握。所以花一個星期的時間系統地複習了一下,僅限於理論層面。 誠推Xmind這個做思維導圖的軟體。實現了很多我以前想實現的東西。 接下來有時

【原創】線性代數學習筆記——劍橋食譜

最近學習了《麻省理工公開課:線性代數》,首先向吉爾伯特-斯特林老師致以深深的敬意,他的課程使我對整個線性代數有了全新的認識。本著打鐵要趁熱的精神,我又抓緊時間開啃華章數學譯從的《線性代數及其應用》和《矩陣分析》,現在的感覺就是像廣告上說的那樣:So easy! 在《線性代數

線性代數學習筆記3

第五集  向量空間 我們可以對向量進行所謂“線性運算”,即通過加和(v+w)與數乘運算(3v)得到向量的線性組合。向量空間對線性運算封閉,即空間內向量進行線性運算得到的向量仍在空間之內。 包含於向量空間之內的一個向量空間稱為原向量空間的一個子空間。 R2

線性代數學習筆記(代數版)

Orz yanQval 內容主要來自半年前洛谷的冬令營,因為版權原因課件就不放了。 本來是不想學來著,但是過幾天出去學習要講這個,怕被虐的太慘就先預習一下吧 然而課件裡面的題目基本都是CTSC難度的而且找不到提交地址qwq。 矩陣 \(A_{nm}\)表示一個\(n\)行\(m\)列的矩陣。 一個\(1\)行

線性代數學習筆記(幾何版)

本部落格僅用來記錄重要概念。 線性代數學習請移步https://www.bilibili.com/video/av6731067 不得不說,這位up主講的是真心好,尤其是點積叉積那一部分,直接重新整理世界觀QWQ。 基 空間內的一組基指的是:張成該空間的一個線性無關向量的集合 張成 所

線性代數學習筆記(三)

A的列空間:column space 設Ax=b,以column picture視角看,每一個x,都是A的列的一種線性組合,每種組合均構成一個b。取遍x 得到的所有的b 構成了A的column space A的零空間:nullspace 設Ax=0,所有的解x 構成

基於sklearn的波士頓房價預測_線性迴歸學習筆記

>  以下內容是我在學習https://blog.csdn.net/mingxiaod/article/details/85938251 教程時遇到不懂的問題自己查詢並理解的筆記,由於sklearn版本更迭改動了原作者的程式碼,如有理解偏差歡迎指正。  1. np.linspace       np.l

學習筆記第二十三節:線性

正題       注意!本篇文章注意區分插入和填入。       這個神奇的資料結構在很早之前就會了,現在寫部落格回憶一下。       線性基有著非常好的性質,它主要是用來解決異或和之類的問題。       他是一個什麼樣子的東西呢?       首先他是一個數組

線性學習筆記and亂口胡總結

typedef www 如果 http 如何 const void 能夠 否則 還以為是什麽非常高大上的東西花了1h不到就學好了 線性基 線性基可以在\(O(nlogx)\)的時間內計算出\(n\)個數的最大異或和(不需要相鄰)。 上述中\(x\)表示的最大的數。 如何實現

數據結構學習筆記(二) 線性表的順序存儲和鏈式存儲

出錯 初始化 node != test span 輸入 des val 線性表:由同類型數據元素構成有序序列的線性結構  --》表中元素的個數稱為線性表的長度  --》沒有元素時,成為空表  --》表起始位置稱表頭,表結束位置稱表尾 順序存儲:    1 package

ufldl學習筆記與編程作業:Linear Regression(線性回歸)

cal bug war 環境 art link 行數 ear sad ufldl學習筆記與編程作業:Linear Regression(線性回歸) ufldl出了新教程,感覺比之前的好。從基礎講起。系統清晰,又有編程實踐。在deep learning高質量群裏

SVM學習筆記-線性支撐向量機

操作 mar 向量 直觀 法向量 衡量 最優 目標 vector   對於PLA算法來說,最終得到哪一條線是不一定的,取決於算法scan數據的過程。    從VC bound的角度來說,上述三條線的復雜度是一樣的    Eout(w)≤Ein0+Ω(H)

數據結構學習筆記-----------------線性

數據結構線性結構的特點:在數據的非空有限集中一、存在唯一一個被稱為“第一個”的數據元素二、存在唯一一個被稱為“最後一個”的數據元素三、除第一個之外,集合中每個數據元素均只有一個前驅四、除最後一個之外,集合中每個數據元素均只有一個後繼一個線性表是n個數據元素的有限序列序偶關系:兩個固定次序的客體組成一個序偶,它

sklearn學習筆記之簡單線性回歸

學習 實現 數據 list 標準 code 線性模型 它的 擴展 簡單線性回歸 線性回歸是數據挖掘中的基礎算法之一,從某種意義上來說,在學習函數的時候已經開始接觸線性回歸了,只不過那時候並沒有涉及到誤差項。線性回歸的思想其實就是解一組方程,得到回歸函數,不過在出現誤差項之

R語言學習筆記(十一):廣義線性模型

學習筆記 Education 5.0 1.3 style only 可能性 div erro #Logistic 回歸 install.packages("AER") data(Affairs,package="AER") summary(Affairs) a