Time of Update: 2018-12-07
Time Limit: 1000MS Memory Limit: 65536KBTotal Submissions: 15 Accepted: 8 Description:Badming看看上周的題目,覺得太難了,就想把題目出簡單一些。求一個整數的開方√x。比如求 √99 =9 √100=10但這樣也太簡單了吧,為了增加些許難度,x的範圍是0-10^26 Input:給定一個自然數x.當x=0表示輸入結束,不用再處理. Output:輸出它的開方. Sample Input:162635
Time of Update: 2018-12-07
迅雷總是偷偷上傳,其實是迅雷儲存了一個檔案cid_store.dat,偷偷記錄我們已經下載的檔案,這樣的話,我們只要把這檔案刪除,然後另外建一個檔案,加上一些唯讀屬性,這樣就可以防止其上傳了。 下面的批次檔可以完成此操作:echo 禁止迅雷5偷偷上傳attrib -a -s -h -r %systemroot%\system32\cid_store.datdel %systemroot%\system32\cid_store.dat /qmd
Time of Update: 2018-12-07
定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函數。要求時間對長度為n的字串操作的複雜度為O(n),輔助記憶體為O(1)。 將一個字串分成兩部分和兩個部分,在字串上定義反轉的操作,即把的所有字元反轉(如,那),那麼我們可以得到下面的結論:。顯然我們這就可以轉化為字串的反轉的問題了。 代碼如下: #include <stdio.h>#include <string.h>char *
Time of Update: 2018-12-07
今年關於Web Spam的Workshop已經停開了,這是不是意味這Web Spam這個方向沒有研究的餘地了呢?答案是否定的。根據對最新資料集ClueWeb09 Dataset的 研究,對於一些熱門查詢的前10結果,大部分頁面(尤其是英文頁面)是作弊頁面 [1]。這說明現在作弊還是非常流行的,對資訊檢索造成了嚴重的後果。這也從某個側面說明,我們現在的反作弊策略的研究還不是很成功,還有很長的路要走。 因此,關於Web Spam的研究還有很大的餘地。但可能簡單的方法已經被人想出了,所以研究Web
Time of Update: 2018-12-07
數組的最大子序列問題:給定一個數組,其中元素有正,也有負,找去其中一個連續子序列,使和最大。這個問題可以可以動態規劃的思想解決:設b[i]:表示以第i個元素a[i]結尾的最大子序列,那麼顯然b[i+1]=b[i]>0?b[i]+a[i+1]基於這一點很快就可以完成如下代碼:int maxSubArray(int ar[], int n){int max = ar[0];int b = ar[0];int i;for (i = 1; i < n; i++){if (b >
Time of Update: 2018-12-07
輸入一個整數,求該整數的二進位表達中有多少個1。例如輸入10,由於其二進位表示為1010,有兩個1,因此輸出2。 這個題非常簡單,考的是位元運算,我們每次向左移1位,判斷最後一位是不是1就可以了。不多說了,代碼如下:#include <stdio.h>int count_one(int x){int count = 0;while (x != 0){if (x&1 == 1)count ++;x = x>>1;}return count;}int
Time of Update: 2018-12-07
1. 給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,讓你找出a、b檔案共同的url?方案1:可以估計每個檔案安的大小為50G×64=320G,遠遠大於記憶體限制的4G。所以不可能將其完全載入到記憶體中處理。考慮採取分而治之的方法。s 遍曆檔案a,對每個url求取,然後根據所取得的值將url分別儲存到1000個小檔案(記為)中。這樣每個小檔案的大約為300M。s
Time of Update: 2018-12-07
一個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。 首先我們考慮最簡單的情況。如果只有1級台階,那顯然只有一種跳法。如果有2級台階,那就有兩種跳的方法了:一種是分兩次跳,每次跳1級;另外一種就是一次跳2級。現在我們再來討論一般情況。我們把n級台階時的跳法看成是n的函數,記為f(n)。當n>2時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1級,此時跳法數目等於後面剩下的n-1級台階的跳法數目,即為f(n-1);另外一種選擇是第一次跳2級
Time of Update: 2018-12-07
WebGraph是一個很好的用來儲存和表示Web圖的工具,目前提供Java版、C++版以及其他一些版本對Java的介面。以前,我一直在用Java 版本的,但最近用Java壓縮一個大型的Web圖(60多G)的時候出現未知錯誤。因此,就想用C++版本來試一試。之前也用過C++版本的
Time of Update: 2018-12-07
#pragma once#include using namespace std;class bit_vector{public:bit_vector(int);~bit_vector(void);int get_bit(int);void set_bit(int);void clear_bit(int);void reverse_bit(int);string to_string();private:unsigned int * ar;int len;int get_bit(unsigned
Time of Update: 2018-12-07
WebGraph是一個非常不錯的web圖工具,網站地址http://webgraph.dsi.unimi.it/,提供多種圖的格式,更可貴的是提供一種壓縮圖格式。 ImmutableGraph用來遍曆,ASCIIGraph用來讀取ASCIIGraph格式,ArrayListMutableGraph用來構建自己的web圖,但是實現的不是很快捷,我自己實現了一個稍微改進的版本:public class DictionaryMutableGraph:ImmutableGraph {
Time of Update: 2018-12-07
文章目錄 一、關於做人二、關於愛情三、關於生活四、關於學習五、關於實踐六、關於社會工作七、關於遊戲八、關於工作、讀研、出國九、關於心理健康十、勤工助學十一、關於比賽十一、關於其他總結 剛剛看來大齊的日誌,感觸很多,也讓我想起了我的大學生活。總的來說,我對我的大學生活基本滿意,但在有些方面還是有很多遺憾。也來說一下我對某些方面的感悟。一、關於做人每
Time of Update: 2018-12-07
輸入兩個整數序列。其中一個序列表示棧的push順序,判斷另一個序列有沒有可能是對應的pop順序。為了簡單起見,我們假設push序列的任意兩個整數都是不相等的。比如輸入的push序列是1、2、3、4、5,那麼4、5、3、2、1就有可能是一個pop系列。因為可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,這樣得到的pop序列就是4、5、3、2、1。但序列4、3、5、1、2就不可能是push序列1、2、3、
Time of Update: 2018-12-07
1. Download it from here (now here). The beta has been closed and Adobe plans to release a 64-bit linux version soon. In the meanwhile you can get the latest version here (the md5 checksum is 5aa962abc2e2c85a5efee6a39a6a91a0) and cross your
Time of Update: 2018-12-07
上周六去面人民搜尋了,師兄推薦的,約的是下午兩點一刻筆試。中午沒吃飯就出發了,到的時候差不多1:30左右。害怕遲到,所以就沒有吃午飯。挺到兩點一刻的時候,發現還沒有輪到我面試,我就去問了一下前台,前台告訴我要稍微等一下,因為前面的人還沒有面試完。然後我就問她下面有沒有自動售貨機能買點吃的。她聽到我沒有吃飯,她告訴我她們那裡還有飯。後來她就帶我去吃飯了,那裡還放著幾份便當,我吃了一盒炒麵,不是很好吃,沒有完全吃完,我就到外邊去等著了。大概三點十幾分的樣子,終於輪到我了,首先HR把我帶到了一個會議室
Time of Update: 2018-12-07
Windows環境下,有時候必須一直開著某些視窗,但如果視窗一多,有的時候看著心煩。好在Windows api中存在隱藏視窗的方法,為了學習MFC編程,我編寫了一個隱藏視窗的工具。 工具中用到的主要api如下:EnumWindows:EnumWindows(EnumWindowsProc, 0),通過該函數來遍曆所有的視窗,其中EnumWindowsProc是一個回呼函數,如下:代碼<!--Code highlighting produced by Actipro
Time of Update: 2018-12-07
給定一個數組,要求你把數組的順序隨機打亂,然後輸出,主要是要保證效率。這個演算法其實簡單,首先從所有元素中選取一個數與第一個進行交換,然後在2至n中選擇一個元素與第二個交換,直到最後一個元素。這樣能確保每個元素在每個位置的機率都是1/n。代碼如下:#include #include #include // 隨機打亂一個數組void random(int a[], int n){int index, tmp, i;srand(time(NULL));for (i = 0; i
Time of Update: 2018-12-07
這兩個都是我做助教的那個班的兩個同學完成的,覺得她們做得不錯,故貼出來共用。第一個同學的實現:#include<iostream.h>#include<string.h>#include<assert.h>class String{private: char * str; int size;public: String( char * s ); ~String(); int Strlen ( ) { return strlen( this ->
Time of Update: 2018-12-07
輸入一個整數n,求從1到n這n個整數的十進位表示中1出現的次數。例如輸入12,從1到12這些整數中包含1 的數字有1,10,11和12,1一共出現了5次。 如果按照常規的思路來解決這個問題:首先考慮如何計算一個數n中1的個數,我們可以採用類似於求二進位1的個數的求法,每次除,並取餘,看看餘是不是1來確定。這樣總共的時間複雜度將是O(n),這樣是有些慢的。
Time of Update: 2018-12-07
一篇文章,切完詞之後放到一個vector<string>中,一個查詢切完詞也放到一個vector<string>中,寫一個函數找出這篇文章中包含這個查詢中所有詞的最小區間的i和j。只要返回第一個即可。 當時很坑爹,直覺告訴我要建索引,而且建索引也對了,但是建完之後就不知道怎麼搞了,後台他提示一句,有些是不需要比較的,才得到靈感,想出瞭解決辦法,但是寫起代碼來,又掉鏈子了,可能是在紙上寫代碼沒有什麼經驗吧,在電腦上,我寫代碼還是很快了。