原创 6174問題與sort函數

6174問題:假設你有一個各位各不相同的四位數,把所有數字從小到大排序後得到啊、,從大到小排序後得到b,然後用a-b替換原來這個數,並且繼續操作。例如,從1234出發,以此可以得到4321-1234=3087、8730-387=8325、

原创 char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][]

指針和數組是C的比較難搞懂的知識點, 需要結合內存來學習. 首先說明一下C程序在運行時, 不同的內容或變量分別存儲在什麼地方? 分了幾塊區域分別是, code, constants, global, heap, stack; (內

原创 最長迴文子串(中間擴展法)

上一篇博文寫了用三重循環暴力法求最長迴文子串,這篇文章寫了用中間擴展法求最長迴文子串,和暴力法一樣,中間擴展法最開始也需要預處理數組,僅僅把字母保留下來且全部轉換成大寫字母,然後用一個數組p去存這些字母在原字符串中的位置,以備輸出之用,中

原创 獨角獸排序問題 Codeforces Round #259(Div.2)

原題鏈接 分析:滿足題目條件的序列只有兩種。第一種是從小到大排列的序列,如:1,2,3,4,5;還有一種滿足條件的是:從中間某個地方斷開,前面的數是遞增序列,後面的數也是遞增序列,且這個數組的第一個元素要比最後一個元素大,如:4,5,1,

原创 最長迴文子串(暴力法)

求最長迴文子串最簡單最暴力的方法就是遍歷每一個子串,看看這個子串是不是迴文,是的話這個子串的長度有沒有最大的長度max大,遍歷每一個子串的時間複雜度是O(N^2),判斷一個子串是不是迴文子串的時間複雜度是O(N),這三個for循環嵌套在一

原创 字符串的幾種輸入方式

自己記錄下來以備不時之需 第一種: #include<iostream> #include<string> using namespace std; int main(){ string s; while(cin>>s) cout

原创 最長上升子序列 LIS

最長上升子序列有好幾種解法,這裏介紹其中比較常用的兩種。 第一種是普通的動態規劃,時間複雜度爲O(N^2),所以寫一些數據比較大的題目就會超時,比如請看這題,沒什麼好說的,直接上代碼。 #include using namespace

原创 HDU1025 Constructing Roads In JGShining's Kingdom

原題地址:戳進來 這道題目就是說有兩條平行線,第一條線上是rich城市,第二條線上是poor城市,要求把相同數字的城市相連,但是不能出現交叉,問最多能連幾條線。 這道題目我一直感覺有問題,有的人說輸入本身就是有序的不用排序,也有的說輸入無

原创 動態規劃入門戳進來

學動態規劃自然要從數字三角形開始起步,那麼我們就先從數字三角形開始。 數字三角形題目:有一個由非負整數組成的三角形,第一行只有一個數,除了最下行之外的每個數的左下方和右下方各有一個數,如下圖所示: 1 3 2 4 10 1 4 3

原创 【STL】next_permutation

C++的STL有一個函數可以方便地生成全排列,這就是next_permutation,next_permutation函數的返回值類型是bool型。 #include<iostream> #include<algorithm> using

原创 爲什麼我辭去華爾街日報的工作加盟Oracle

這個月的頭幾天,我辭去了華爾街日報CIO雜誌的編輯工作,因爲我得到了我夢寐以求的工作,加入Oracle公司的通信隊。 我的小夥伴們都驚呆了,他們問我:“爲什麼是Oracle?”。 或許不是所有人都知道Oracle公司是幹什麼的,但是

原创 八皇后與回溯法

八皇后問題是回溯法的經典應用,對回溯法的學習很有幫助。 八皇后問題:在一個8*8的棋盤上放置8個皇后,使她們互不攻擊,每個皇后的攻擊範圍爲同行同列和同對角線,要求找出所有解。 我們先在第一行上放一個皇后,再在第二行的每一列上試放一個皇

原创 50道Java習題之14

題目:輸入某年某月某日,判斷這一天是這一年的第幾天? import java.util.Scanner; public class Problem_14 { public static void main(String[] args)

原创 開燈問題

題目:有n盞燈,編號爲1~n。第1個人把所有的燈打開,第2個人按下所有編號爲2的倍數的開關(這些燈將被關掉),第3個人按下所有編號爲3的倍數的開關(其中關掉的燈將被打開,開着的燈將被關閉),以此類推。一共有k個人,問最後有哪些燈開着?輸入

原创 蛇形填數

題目:在n*n方陣裏填入1,2,3,...,n*n,要求填成蛇形,n<=8。例如n=4時方陣爲: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 分析:類比數學中的矩陣,我們可以用一個二維數組去存儲題