原创 HDU - 3974 Assign the task DFS括號引理+線段樹

原題目鏈接 題意是給你一棵樹,然後有兩類操作,一種是將某個節點以及它所有的子孫修改成某個數,另一種是查詢該節點的值。所有節點的初始值爲-1; 思路 說實話不好聯想到線段樹上來,如果用暴力修改每棵子樹的話每次修改的複雜度都可以達到

原创 WOJ 1005

01揹包 前言  揹包問題本身已經是老生常談了,但是這依舊是一個十分經典的問題,初學動態規劃的朋友們肯定都繞不過它。網上已經有了很多十分優秀的揹包問題講解,譬如經典的《揹包九講》,但是我自己學了揹包之後發現一個問題就是理解不夠透徹

原创 WOJ 1006 Language of Animals

使用BFS求最短路  在進行圖的學習的時候大家都有學過最短路問題,其中Dijkstra算法和Floyd算法是最經典的了。可是這兩個算法在時間複雜度上有着一定的缺陷,單源最短路Dijkstra算法的時間複雜度是O(n2),任意兩點最

原创 ZJOI2010統計前n個數中各個數碼出現的次數

題目鏈接:ZJOI2010 count 數字計數 題意就是統計某個區間之內的各個數碼出現的次數。明顯的數位dp。 這裏的做法事實上可以進一步的通過空間換時間,比如在dp記錄中增加num和lead狀態,這樣可以減少後續的遞歸次數。大

原创 爲什麼-1不能和vector.size()比較

爲什麼-1不能和vector.size()比較 在使用vector.size()做比較的時候可能會出現如下情況: vector<int> nums={4,8,10,240}; int len=-1; if(len<nums.siz

原创 HDU 1203 01揹包

I NEED AN OFFER Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s

原创 HDU 2094 產生冠軍 判斷能否拓撲排序

產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23900   

原创 上海交通大學複試題 最短路徑

上海交通大學複試題 最短路徑 時間限制:1秒 空間限制:65536K 熱度指數:3277 算法知識視頻講解 校招時部分企業筆試將禁止編程題跳出頁面,爲提前適應,練習時請使用在線自測,而非本地IDE。 題目描述 N

原创 關於鄰接矩陣和鄰接表

關於臨界矩陣和鄰接表的使用情況 在很多圖論的題目中,如果題目本身沒有明確指出兩個頂點只有最多隻有一條直達的邊的話那麼最好使用鄰接表來存儲所有的邊,因爲鄰接矩陣會用某一條邊來覆蓋之前的邊,這條邊可以是最後輸入的邊,也可以是你設定了相應條

原创 哈夫曼樹的WPL值的計算

在計算WPL值的時候一般是用葉子節點的權值乘上其路徑長度,但是實際上在構建哈夫曼樹的過程中我們其實已經計算過路徑長度了,即 WPL = 哈夫曼樹中所有非葉子結點的權值之和 舉個例子:構造 1 2 2 5 9的哈夫曼樹並計算其WPL

原创 牛客網 上海交通大學 整除問題

整除問題 時間限制:1秒 空間限制:65536K 熱度指數:2120 算法知識視頻講解 校招時部分企業筆試將禁止編程題跳出頁面,爲提前適應,練習時請使用在線自測,而非本地IDE。 題目描述 給定n,a求最大的k,

原创 牛客網 校招題 使用棧進行表達式求值

牛客網 校招題 使用棧進行表達式求值 簡單計算器 時間限制:1秒 空間限制:65536K 熱度指數:2762 校招時部分企業筆試將禁止編程題跳出頁面,爲提前適應,練習時請使用在線自測,而非本地IDE。 題目描述

原创 最小郵票數

牛客網 計算機歷年考研複試 最小郵票數 題目描述     有若干張郵票,要求從中選取最少的郵票張數湊成一個給定的總值。     如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票:3分、3分、4分即可。 輸入

原创 牛客網 計算機理念考研複試機試題 N的階乘

牛客網 計算機理念考研複試機試題 N的階乘 題目 求n的階乘,n最大爲1000,long long也存不下,考的是大整數的乘法和加法,即高精度。 #include <iostream> #include <queue> #inclu

原创 warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

在C++11中有明確規定 char* p = "abc"; // valid in C, invalid in C++ 如果你進行了這樣的賦值,那麼編譯器就會跳出諸如標題的警告。但是如果你改成下面這樣就會通過warning char