原创 歐拉函數性質

1、n=∑ϕ(d)  (d|n) 2、除了φ(1),φ(2)都是偶數

原创 集訓小結

D1:模擬賽:T2並沒有拿到暴力分,RE了,原因是沒有判一些特殊情況(比如除以0), 以後應該注意。 課程:今天是圖論專題,我一直覺得圖論是我的弱項,不過講的題已經聽過一遍了,但感覺以前學的還是不紮實。 最短路:主要要攻克拆點、把一些其他

原创 bzoj2460 線性基模板

#include<bits/stdc++.h> using namespace std; typedef long long ll; int n; ll ans; ll p[1005]; struct node { ll id, w;

原创 bzoj4405

將每個框拆成三個點。 球向三個點連邊,框內連兩個邊(都連和連兩個效果是一樣的)。 若拆點後有兩點連了則說明小於等於1,貢獻爲1,減去每個球的貢獻就是答案。 #include<bits/stdc++.h> using namespace

原创 求每個前綴有多少種本質不同的迴文串

迴文字動機每次新建點就相當於增加了一種迴文串。 #include<bits/stdc++.h> using namespace std; int n, tot, las, fil[100005], nx[100005][30], len

原创 帶花樹

#include<bits/stdc++.h> using namespace std; int n, m, tl, hed[505], mp[505], cnt, f[505], jb[505], pre[505]; int inx,

原创 bzoj2115

dfs出任意一條到n的異或和,以及所有環的異或和,線性基求最大值。 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n, m, tl, hed

原创 bzoj3676

迴文字動機模板 #include<bits/stdc++.h> using namespace std; typedef long long ll; char s[300005]; int n, las, fil[300005], nx

原创 bzoj3732

//先求最小生成樹,順便維護max,再求lca取max就行。

原创 bzoj1202(第一篇博客,大家快來捧場吧)

1、一般碰到連續區間的題,可以用並查集,把他的祖先記爲能到達的最長區間的端點(通常爲右端點); 2、求兩個區間的差不一定要硬生生地求,如果有一種比較優的算法能記錄這兩個區間加上另一個重複的區間,那麼減的時候可以抵消掉重複區間,對答案沒影響

原创 bzoj1433(匈牙利水題)

上週模擬賽由於二分圖不熟白白將這個題拱手送出。。。今天來一雪前恥。 說下建圖:把最終在校的學生連向和他關係好的人的牀和自己的牀,然後做二分圖匹配即可。 二分圖細節: if(!mapp[i]||xiongyali(mapp[i])) {

原创 並查集專題

這篇博客來談談我目前對並查集的主要應用(隨着學習的深入會不斷補充): 1、最基本的當然就是在同一個集合裏的東西 2、在一個圖裏聯通的兩個點 3.一條線上連續區間的端點(bzoj1202,bzoj2054) 4、不在同一個集合的點,建立補集