Time of Update: 2018-12-06
原地址:http://hi.baidu.com/aekdycoin/blog/item/71d7a842b93f611b73f05da4.html 給定方程x = c1 (mod b1) ……………………(1)x = c2(mod b2) ………………………(2)(b1,b2)可以不為1於是通過取mod 定義,我們得到x = k1 * b1 + c1………………(3)(3) 帶入(2)k1 * b1 + c1 = c2 (mod b2)…………(4)化簡k1 * b1 = c2 - c1 (
Time of Update: 2018-12-06
問題描述:給出兩個字串X, Y,求一個串同時是X, Y的子串並且是所有滿足條件裡的最長的串。分析:題目是一個動態規劃問題。設c[i][j]表示 x = {x0, x1, x2, .. xi-1}和 y = {y0, y1, y2, .... yj-1},的最長子序列長度, x, y的字串為 z= {z0, z1, z2, ... zk}。所以有一下規律:當x[i-1] = y[j-1]時,z[k] = x[i-1] = y[j - 1], c[i][j] = c[i-1][j-1] + 1;
Time of Update: 2018-12-06
Tarjan 它好賤,wa了10+次。。。 思路:用“它賤”進行強連通縮點。然後統計縮點後的圖中入度為0的點的個數in和出度為0的點到個數out。A就是in, B就是max(in, out);渣代碼:View Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <stack> 5 6 using namespace std; 7 8
Time of Update: 2018-12-06
A,貪心題,思路是遇到1就翻轉,看最後能不能把所有的反成0 B,找規律,不考慮黑白的話總共有ans = (n-7)*(m-7)種情況。如果ans是偶數,則正好有ans/2個。如果是奇數,則要根據右下角而定,右下角是0則有ans/2 + 1個,否則有ans/2個 C,數學題,Polla昨晚後給我講的,分兩種情況,設半徑為r。一、w做圓柱體的高,此時r <= w/2 && 2*pi*r <= (h - 2*r) => r = min(w/2,
Time of Update: 2018-12-06
Triangle Wave In this problem you are to generate a triangular wave form according to a specified pair of Amplitude and Frequency.Input and OutputThe input begins with a single positive integer on a line by itself indicating the number of the cases
Time of Update: 2018-12-06
http://acm.whu.edu.cn/land/problem/detail?problem_id=1338題意:N種不同的硬幣,每種num[i]個。問把這些硬幣擺成一條線共有多少種擺法。 解:設硬幣共有sum個,不考慮相同硬幣是同一種情況。組合數學上的定理(這個忘了,又重新翻的,看來得做題才能加深印象):令S是一個多重集合,又k個不同類型的元素,各元素的重數沒別為n1,n2,...,nk。設S的大小為n = n1 + n2 + ... + nk。則S的排列數為: n! / (n1!*n2
Time of Update: 2018-12-06
題意很糾結。。。說的是1...n這些人登台,每個人有個吊絲值D[i],如果i號人第k個登台,那麼他的憤怒值就是(k-1)*D[i]。現在有一個棧,可以先把i前邊的人依次次進棧,然後讓第i號人登台,然後在選擇是棧裡的同學登台還是i以後的同學登台,這樣很多種情況會得到很多總憤怒值。求最小的總憤怒值。。。。 n<=100,暴力肯定不行。3^100....只能考慮dp,(貪心直接忽略-_-!)。想了半天一直在考慮怎麼儲存被訪問的狀態。。。所以從昨天晚上到今天一直沒什麼進展,無奈看了看解題報告
Time of Update: 2018-12-06
證明:從題目可以知道 A: (1 + x2/1! + x4/2! + ....); B: (1 + x/1! + x2/2! + x3/3! + ...); C:(1 + x2/1! + x4/2! + ....); D: (1 + x/1! + x2/2! + x3/3! + ...);所以有: G(x) = (1 + x2/1! + x4/2! + ....)2 * (1 + x/1! + x2/2! + x3/3! + ...)2;由於泰勒展開式:ex = 1 + x/1! + x2
Time of Update: 2018-12-06
據說使摺疊法:int hashcode(int *v, int k) {int i, p = 0;for(i = 0; i < k; ++i) { p = ((p << 2) + (v[i] >> 4))^(v[i] << 10); } p %= MOD;if(p < 0) p += MOD;return p;} ELFhash UNIX系統處理字串使用的雜湊 //UNIX系統使用的雜湊int
Time of Update: 2018-12-06
轉載自:http://hi.baidu.com/lydrainbowcat/blog/item/2194090a96bbed2db1351de8.html 基本概念:1.割點:若刪掉某點後,原連通圖分裂為多個子圖,則稱該點為割點。2.割點集合:在一個無向連通圖中,如果有一個頂點集合,刪除這個頂點集合,以及這個集合中所有頂點相關聯的邊以後,原圖變成多個連通塊,就稱這個點集為割點集合。3.點連通度:最小割點集合中的頂點數。4.割邊(橋):刪掉它之後,圖必然會分裂為兩個或兩個以上的子圖。5.割邊集合
Time of Update: 2018-12-06
將強連通分量進行縮點,然後找縮點後的圖中出度為0的縮點所包含的結點數,就是最後結果。如果出現多個出度為0的縮點,則表示不存在所求的點。渣代碼:View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <stack> 5 6 using namespace std; 7 8 const int M = 50010; 9 const
Time of Update: 2018-12-06
早晨7點到實驗室一翻郵箱看到tc的郵件。。。srm 546,因為昨晚去複習,沒來實驗室,所以不知到又比賽。T_T 早晨抽出一小時翻了翻。。。250pt水題550pt不好想,反正我的思路很複雜,寫難產了。然後看到別人的寫,無語的是就幾行代碼搞定。不得不佩服啊class TwoRectangles {public: string describeIntersection(vector <int> A, vector <int> B) { int c[4
Time of Update: 2018-12-06
The Collatz Sequence An algorithm given by Lothar Collatz produces sequences of integers, and is described as follows:Step 1:Choose an arbitrary positive integer A as the first item in the sequence.Step 2:If A = 1 then stop.Step 3:If A is even,
Time of Update: 2018-12-06
今年天津賽區網路賽的一道題,比賽的時候跟強哥討論了一下,他的思路很明確,然後就讓他去寫了。。。賽後偶翻了翻這個題。。。額,還不錯的狀態dp把。。。就是讓我給寫搓了。。。貢獻n次wa。。。 題目是給一下點之間的花費,構成一個圖(圖不是很大,最多100*100)。然後指定一些必須訪問的點。並且這些點上有一個先花費Di再收入Ci的過程,問能否實現訪問所有這些點。。。因為指定的點數最多為15,加上1號點最多才17,所以直接用狀態壓縮就可以。先用floyd找出任意兩點間的最小花費。然後dp[stat
Time of Update: 2018-12-06
問題:求L 到 R範圍內的所有素數 (L < R <= 2147483647, R - L <= 10^6)解:要判斷x是否是素數,可以看 x %(所有比x小的素數)是否有0出現。。。當然,還可以最佳化一下 x % (所有比sqrt(x)小的素數)已知 sqrt(2147483647) = 49361;打出 [2, 49361]範圍內的素數表,大約不到5000個素數。然後用小於
Time of Update: 2018-12-06
在我國陰曆豬年即將來臨之際,你會不會送給人家這樣一句祝福語:“祝你像豬一樣快樂”? 估計絕大多數人不會這樣說,因為在中國人的傳統觀念中,豬是“愚蠢、懶惰、邋遢”的代名詞,若你說別人像豬,人家不跟你急才怪。但在西方文化裡,代表愚蠢的動物是驢,豬不僅不代表愚蠢,而且有時還代錶快樂! 豬為什麼可以代錶快樂?通常大家會認為是豬頭腦簡單,“豬頭不知愁滋味”,所以整天“傻樂”著!但筆者卻認為豬是如蘇東坡所說的“大智若愚”,深得中國古老智慧之真諦。有人可能會趣笑我,你這不是癡人說夢話,或是“朱人”說“
Time of Update: 2018-12-06
/*開始沒看懂題意。悲劇了一晚上。。。題意是N個人編號,1號最高,N號最矮,從後往前跳。我看成1號最矮,N號最高了。其實可以把輸入的數轉化一下,讓1號最矮,N號最高,這樣就好處理了。*///My Code:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 10007;int c[N], n;int lowbit(int i)
Time of Update: 2018-12-06
A,B兩個序列,每個元素表示一個長方形,問A中的長方形最做能覆蓋多少個B中的長方形。(覆蓋= (Ha >= Hb && Wa >= Wb))把A,B放到一個集合裡,A的元素標記為1,B的元素標記為0,然後按h從大到小排序,h相等按w從大到小排序,h w都相等則A優先在前面。然後遍曆整個序列。將A元素的w值放到set裡面,碰到B元素的w值則在set裡找第一個 >= wB 的數,將這個數從set裡刪掉,結果累加1。。。ps: 關鍵字 multiset
Time of Update: 2018-12-06
在這裡學會的最小費用最大流問題。定義:圖G以S為源點,T為匯點。c(i, j)為G的容量,f(i, j)為G的流,w(i, j)為單位流量的費用且w(i, j) = -w(j, i)。費用wf = ∑(fij * wij) (i, j)∈E(G)。就是求最大流F的情況下保證wf最小。 思想:利用Ford-Fulkerson演算法的思想,不斷的在殘留網路中找增廣路,這裡找的增廣路是當前網路從S到T的以單位流量為權值的最短了。因為涉及道負權,所以可以選擇spfa或者bellman-ford。
Time of Update: 2018-12-06
好幾天前看了算導上的Miller-Rabin素數測試演算法,今天正好總結一下,寫寫筆記。 說Miller-Rabin測試以前先說兩個比較高效的求a*b% n 和 ab %n 的函數,這裡都是用到二進位思想,將b拆分成二進位,然後與a相加(相乘)// a * b % n//例如: b = 1011101那麼a * b mod n = (a * 1000000 mod n + a * 10000 mod n + a * 1000 mod n + a * 100 mod n + a * 1