原创 pat(basic level) practise 解題報告

pat基礎訓練:很基礎,全是中文題,基本都模擬即可。 1001. 害死人不償命的(3n+1)猜想 (15) 計算1000以內需要多少次能將一個數變爲1,模擬 1002. 寫出這個數 (20) 計算各位數字和,並用拼音輸出 1003. 我要

原创 幾道啓發式搜索問題 soj2831

先mark一下。 先附個A*的代碼 注意一下 判重的 問題 #include <string.h> #include <stdio.h> #include <ctype.h> #include <algorithm> #include <

原创 多項式大於和漸進大於的區別

在算法分析中,通常只需要分析時間複雜度的漸進行爲,即分析出運行時間的漸進確界。 於是,漸進大於可以這樣理解:設g(n)漸進大於f(n) 則存在數c>0和n0,使得對於任意 n >= n0 有 c*g(n) >= f(n). 多項式大於定義

原创 soj4076 母函數應用

鏈接:soj 先附個代碼: #include <stdio.h> #include <string.h> #include <ctype.h> typedef __int64 ll ; const ll mod = 100000000

原创 splay的基本操作及相關例題 未完待續

文章參考《神奇的splay》 1.splay介紹 splay是一種非嚴格維護的平衡二叉樹,每次操作的均攤複雜度爲O(logN)。此外,splay編程複雜度低,支持的操作很多。 2.splay基本操作 ①:旋轉 經典旋轉:左旋zag,右

原创 算法導論思考題 找出所缺的數字

此題出自《算法導論》第4章遞歸式思考題4-2。 【題目說明】 某數組A[1...n]含有所有從0到n的整數,但其中有一個整數不在數組中,現在要找出這個不在數組中的整數。 因爲A中的元素用二進制表示的,所以我們能用的唯一操作就是“取A[i]

原创 加權編輯距離

在詞項獨立的矯正方法中,有一種叫做編輯距離的方法。 給定兩個字符串s1和s2,兩者的編輯距離定義爲將s1轉換成s2的最小編輯操作數。 這些編輯操作包括: 將一個字符插入字符串中將一個字符從字符串中刪除將字符串中的一個字符替換爲另外一個字

原创 soj3538 幸運數字 容斥原理應用

鏈接:soj3538 【題目大意】: 由6和8組成的數字都是lucky數字,其倍數也是lucky數字。 求給定區間[l,r]有多少個lucky數字。(1 <= l,r <= 10,000,000,000 ) 【分析】: 若能求出[1,n]

原创 從一道簡單的題看算法優化 ZOJ PAT Course List for Student

一位好友保研後突然想做做ZOJ的PAT Practise,據說裏面的題都比較水,但是還是不幸的卡在了Course List for Student (25)上面。 這是PAT的鏈接:http://pat.zju.edu.cn/contes

原创 soj1111 Gnome Tetravex dfs搜索

這也是黑書上的一道例題。 先給個soj的鏈接:題目 【題目大意】 給定n*n(N<=5)個方塊,每個方塊由上下左右四個面構成。 問是否能將n*n個方塊拼成任意兩個相鄰塊的相鄰面值相等。 實例如下圖: 這是一個初始2*2的方塊: 它可以拼

原创 二維數組的二分查找 解題報告

【題目大意】 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 【分析】 排好序的一維數組二分查找的效率是O(lo

原创 zoj1479 dweep soj1106 搜索

【大意】 在n*m(n<=20,m<=20)的網格中,有若干的激光發射器,激光發射器面朝上或者下或左或右,激光被終止於激光發射器或者障礙,somebody想從網格的A點走到B點,somebody可以從8個方向走,但她不能連續在有激光的地

原创 soj 4018upit解題報告 splay經典應用

時隔一年,終於解決了upit。。。 先給個題目連接:soj:upit 題目大意: 維護一段序列,序列有4種操作: 1.將[A,B]的值統一賦值爲X 2.將[A,B]的值每一個都添加X的若干倍,方法爲第一個+X,之後的+2X,3X,....

原创 素數環問題 hdu1016

【大意】 給定數n(n<20),在n的所有排列中,記a[1],a]2],...,a[n],求滿足a[i]+a[i+1](1<=i<n)是素數並且a[1]+a[n]也是素數的所有排列。排列按字典序輸出。 【分析】 經典的搜索問題。 先