原创 歐拉路+字典樹 poj2513 Colored Sticks

這題真卡空間== 這道題就是判斷是否圖中有歐拉路,判斷圖是否聯通 歐拉路:圖中度數爲奇數的點爲0或者2 判斷圖是否連通,直接dfs遍歷一次圖就行了 但是這道題輸入的是25w string 用map會t的 我們要用到字典樹 我的字典樹模板

原创 codeforces Moodular Arithmetic 數論

由於gcd(k,p)==1,那麼很顯然k*x%p = z,這個等式中,x屬於(0,p-1),z屬於(0,p-1),那麼的話,一定是一一對應的 下面給出證明(自己yy的,有錯誤謝謝指出) 令y = f(kx mod p), x = f(x

原创 數論 畢達哥斯拉三元組 + 歐拉函數 + 容斥原理 hdu3939

涉及的知識點還是挺多的,這題時間特卡。。。。 1.畢達哥斯拉三元組: 三元組(a,b,c),其中a,b,c無公因數,且滿足a² +b² =c²。 a爲奇數,b爲偶數,c爲奇數 可以得到如下勾股數組定理: a = 2m*n; b = m^2

原创 並查集 + 拓撲排序 hdu1811 Rank of Tetris

這道題麻煩的就是有兩個數相等的情況出現 我們使用並查集,將相等的並在一起 再用拓撲排序 將入度爲0的點push進去 1.隊列裏面如果有>=2的點,那麼代表這信息不完全不能判斷 2.如果入隊的次數小於n,那麼代表有環,有衝突 /******

原创 樹形dp The Tree Root uva10459

樹形dp,兩次dfs son1[u],節點u向下能訪問到的最大深度 son2[u],節點u向下能訪問到的次大深度 f[u],節點向上能訪問到的最大深度 第一次dfs求得son數組 dfs(v,u); if(son1[v]+1 > s

原创 計算幾何 uva11117 Morley's Theorem

作三角形ABC每個內角的三等分線,相交成三角形DEF,則DEF是等邊三角形。給出A、B、C 3個的位置確定D、E、F 3個點的位置 涉及知識: 1.向量的旋轉 2.兩條直線求交點(已知兩點) 3.兩向量求夾角 /*************

原创 Finals in arithmetic 分類討論

題意很簡單 但是寫起來比較麻煩,略噁心,建議先想清楚了再寫 大概思路 將數字按位從大到小爲1,,,n 兩種情況1和n的組合要不要最高位再次進位 l,r像中間走 cl,cr分別存是否向上一位進位,和下一位是否向前進位 然後xjb亂搞 還要注

原创 codeforces Simple Skewness

思路:看到0 ≤ xi ≤ 1 000 000的數據範圍想到可不可以枚舉中位數 k的個數爲奇數的時候好弄 k的個數爲偶數的時候就不行了 證明發現k的個數只能爲奇數(開始想的時候去證沒有正對== 證明如下: ave:爲奇數時的平均數,a1:

原创 Codeforces Group Projects dp

http://codeforces.com/contest/626/problem/F 特別好的一道dp 想到了每個數作爲一個集合的上界,下界。。。情況去分析但是一直想不通k的值的變化怎麼搞。。。。。。 看了別人的代碼才明白過來,運用了累

原创 LCA + 並查集 Happy Tree Party codeforces593D

一個64位的數,最多在被大於1的數整除64次後就變爲0 所以對於每次訪問,我們最多除64次 那麼我們就要將爲1的路壓縮,使用並查集 每次訪問使用lca,找到公共祖先lc,然後u->lc,v->lc,訪問這兩條路 記得並查集的時候要用 re

原创 線段樹 區間更新 區間查詢 poj3468 A Simple Problem with Integers

相比較於單點更新和單點查詢來說 區間更新多了一個pushdown函數 代碼如下void pushdown(int root,int m){ if(add[root]){ add[root<<1] += add[root]; ad

原创 容斥原理 數論

兩個集合的容斥關係公式:A∪B =|A∪B| = |A|+|B| - |A∩B |(∩:重合的部分) 三個集合的容斥關係公式:|A∪B∪C| = |A|+|B|+|C| - |A∩B| - |B∩C| - |C∩A| + |A∩B∩C

原创 11688 uva 二叉樹的旋轉+dp Rotate to root

把二叉樹旋轉先模擬幾遍,要不然這個題。。。gg 模擬下葉子節點如何轉爲root  h:向下還能到達的深度 dep:所在的深度 lm:root到節點需要左移多少次 rm:root到節點需要右移多少次 這個方程還比較好理解,最後轉爲root的

原创 二分圖匹配總結

二分圖匹配 二分圖又稱作二部圖,是圖論中的一種特殊模型。 設G=(V,E)是一個無向圖,如果頂點V可分割爲兩個互不相交的子集(A,B),並且圖中的每條邊(i,j)所關聯的兩個頂點i和j分別屬於這兩個不同的頂點集(i in A,j in

原创 中國剩餘定理+擴展歐幾里得求逆元 hdu 1006

中國剩餘定理 擴展歐幾里得求逆元: int exgcd(int a,int b,int &x,int &y){ if(b==0){ x = 1; y = 0; return a; } int r = exgcd(b,a