Time of Update: 2018-12-03
雖然Android有自己的記憶體回收機制,對於是不是要我們自己調用recycle,還的看情況而定。如果只是使用少量的幾張圖片,回收與否關係不大。可是若有大量bitmap需要記憶體回收處理,那必然記憶體回收需要做的次數就更多也發生地更頻繁,會對系統資源造成負荷。所以,這個時候還是自己試用recycle來釋放的比較好。 如何去使用recycle()方法和何時試用recycle()都是值得考慮的問題。否側,極易出現下面的異常:05-15 08:31:00.117:
Time of Update: 2018-12-03
題目串連這題限制較高。一般的演算法過不了。自己做起來很吃力。到網上參考牛人代碼為之驚歎,處理方法真是不可思議。佩服!佩服!這題痛點就是如何判斷汽車加油的問題。為什麼加油是一升一升地加。主要是設計的dp搜尋是關於路徑與油的體積的狀態。我認為非常巧妙。把問題簡化了許多,能用的dp的思想和優先隊列來進行搜尋,為之叫絕。稍微簡化了代碼,時間也減小了點,心裡還是稍有點欣喜。#include<cstdio>#include<queue>#include<cstring>#
Time of Update: 2018-12-03
int類型比較特殊,具體的位元組數同機器字長和編譯器有關。如果要保證移植性,盡量用__int16 __int32 __int64吧,或者自己typedef int INT32一下。C、C++標準中只規定了某種類型的最小位元組數(防止溢出)64位指的是cpu通用寄存器的資料寬度是64位的。資料類型名稱位元組數別名取值範圍int*signed,signed int由作業系統決定,即與作業系統的"字長"有關unsigned
Time of Update: 2018-12-03
點擊開啟連結題意:從s1的序列中,一次從前往後抽出一些元素,在s2中也從前往後抽取一些元素,s1中抽取的元素組成一個新子序列t1,s2中抽取的子序列為t2,問t1==t2這樣的序列中,滿足以上條件,t1或t2中最多的元素是多小。(t1中的元素個數一定等於t2中元素個數)這題就是典型的最長公用子序列問題。dp策略:用dp[i][j]表示s1中抽取的元素是第i個,s2中抽取的元素是第j個。當有s1[i-1]==s2[j-1]時,從dp[i-1][j-1]的狀態轉移到dp[i][j]時,就有dp[i]
Time of Update: 2018-12-03
題意: 根據每個村莊的距離,在這些村莊裡建一些office使得每個村莊到最近的office距離和最短。分析: 如果此題建一個office,那麼很容易得到,只要建在中間,就一定是最小的。這就是中值最小法,而這題是建立多個office,那麼應該區間dp。設dp[i][j]在前j個村莊也建立了i個office。對於每個區間i到j,取中間的作為建立點。用dis記錄每個區間最短距離。那麼轉移狀態方程:
Time of Update: 2018-12-03
唉!這題完全沒必要用線段樹,用一個很常規的方法就可以過了。不解釋,常規方法就A了。#include<stdio.h>#include<string.h>int q[100005];int main(){int n,Lpos,Rpos,a,b,L=100005,R=-1,color;char op[2];while(scanf("%d",&n)!=EOF){memset(q,0,sizeof(q));while(n--){scanf("%d %d %s",&
Time of Update: 2018-12-03
轉自:http://www.cppblog.com/walkspeed/archive/2007/12/28/39823.html 標頭檔 regex.hpp 常用的類 boost::regex Regex boost::cmatch 以char數組為容器,儲存匹配傳回值。 boost::smatch 以std::string為容器,儲存匹配傳回值。 boost::regex_match 匹配演算法 boost::regex_search 尋找演算法
Time of Update: 2018-12-03
題意:給了兩條直線的兩個的座標。求他們相交的類型,如果正規相交並求出交點。分析:用點叉積,可以判斷直線的相交類型(平行,共線,相交).大概是: 如果相交:設交點:p0(x0,y0),根據交點在兩條直線上有方程: (p1-p0)X(p2-p0)=0; (p3-p0)X(p4-p0)=0;展開就行了。看代碼就知道了:#include<cstdio>#include<cmath>using namespace std;struct node{double x,y;}p[
Time of Update: 2018-12-03
題意:在10*10的房間裡,有些牆,問你從源點(0,5)到對面的點(10,5)的最短路,不能穿過牆。分析:或許看到了最短路,這題大概就有思路了,到我還是有點疑問,”為什麼最短的路一定要從牆的端點過去,有沒有存在一條路徑從某一點(不在這些點)使它能直接到達目的地“?而這些點是有可能的。但我聽別人說過端點就行了,我也不再去追究了。如果是過端點,那就好辦了,由於點不多,枚舉所以可能的路徑,並判斷是否有線段與它相交就行了,端點相交的不能算。代碼:#include<cstdio>#includ
Time of Update: 2018-12-03
題意:一次投放一條木棍,問投放n次夾在上面的木棍有多小,並按順序輸出。按順序判斷線段相交,線段相交,和直線與線段相交多個一個反正判斷水題一個。代碼:#include<cstdio>#define eps 1e-8using namespace std;struct node{double x,y;}point[400005];int rec[1005];int cnt;double Judge(node a,node b,node c){return(a.x-c.x)*(b.y-c.
Time of Update: 2018-12-03
現象#include <strsafe.h>#include<boost/regex.hpp>今天在使用這兩個標頭檔是出現如下警告:/microsoft visual studio 10.0/vc/include/intrin.h(1087): warning C4995:'wcscat': name was marked as #pragma
Time of Update: 2018-12-03
題目串連此題和poj2318一樣。稍微有點的變化就是邊的輸入沒有按從小到大。先排序就可以套用poj2318代碼了。#include<cstdio>#include<cstring> #include<algorithm>using namespace std;const int M=1005;struct node{int l,r;}line[M];int xa,xb,ya,yb;int toys[M],cnt[M];int n,m;bool
Time of Update: 2018-12-03
一個整數數列,元素取值可能是1~N(N是一個較大的正整數)中的任意一個數,相同數值不會重複出現。設計一個演算法,找出數列中合格數對的個數,滿足數對中兩數的和等於N+1。複雜度最好是O(n),如果是O(n2)則不得分方法一:排序後,定義兩個指標begin,end分別指向數組的第一個和最後一個元素。然後按以下規則移動指標:1. 如果*begin + *end = N+1,那麼找到一個解,同時begin++,end--2. 如果*begin + *end >
Time of Update: 2018-12-03
原文:http://www.webkit.org/blog/114/webcore-rendering-i-the-basics/一下是翻譯版本,後面還有對照版本。 這是一系列文章中的第一篇,目的是協助那些對WebCore rendering有興趣的人們。 當完成這些文章,你可以在部落格和WebKit網站的document部分看到這些文章。The DOM Tree一個網頁被分析成包含很多node的一棵樹,叫做文件物件模型(Document Object Model
Time of Update: 2018-12-03
問題描述:給定一個整數序列(可能有正數,0和負數),求它的一個連續最大子序列乘積,如果乘積為負數,輸出-1分析:假設數組為a[],直接利用動歸來求解,考慮到可能存在負數的情況,我們用Max[i]來表示以a[i]結尾的最大連續子序列的乘積值,用Min[i]表示以a[i]結尾的最小的連續子序列的乘積值,那麼狀態轉移方程為: Max[i]=max{a[i], Max[i-1]*a[i], Min[i-1]*a[i]}; Min[i]=min{a[i],
Time of Update: 2018-12-03
這個題目有點模稜兩可,只說轉化成二叉樹。也沒有說平衡二叉樹,二叉排序樹。如果只是隨便什麼二叉樹都可以,把就用數組作為輸出,隨便是前序,中序,還是後續構建二叉樹都可以,網上二叉樹建立的代碼一大堆。下面代碼是簡曆一棵二叉排序樹。首先用數組的中間元素作為根建立二叉樹,然後遞迴簡曆左子樹,右子樹。#include<iostream>#include<queue>#include<windows.h>using namespace std;typedef struct
Time of Update: 2018-12-03
plsa中完全資料(complete data)的似然函數:其中,表示文檔i中的第j個單詞的主題是否為k,如果為k則為1,否則為0相應地,對數似然函數如下然後Q
Time of Update: 2018-12-03
只解釋一下遞推公式m[i][j] = max(m[i-1][j],m[i-1][j-w[i]]+v[i])m[i][j]表示,前i個物體裝進最大容量為j的包裡能獲得的最大價值,如果這個解不包括 i 物體,那麼就等於m[i-1][j],即前i-1個物體放入容量為j的包裡鎖獲得的最大價值;如果包括 i 物體,那麼就等於m[i-1][ j-w[i] ] +v[i], 要能把物體i放進去, 必須在放i之前,包至少要有w[i]的容量剩餘,即包當前的最大價值等於m[i-1][j -
Time of Update: 2018-12-03
題目:輸入一個整數數組,調整數組中數位順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的後半部分。要求時間複雜度為O(n)。方法:設2個頭尾指標begin和end,
Time of Update: 2018-12-03
字串移動(字串為*號和26個字母的任意組合,把*號都移動到最左側,把字母移到最右側並保持相對順序不變),要求時間和空間複雜度最小 如果沒有要求保證字母相對順序不變的話,那麼這題用2個雙端指標,往中間移動交換元素是最簡單的,但是這種移動有跳躍性,所以無法保證相對次序方法見注釋:主要思想是,用一個point指標指向尾部的第一個*,從後從point除法,用指標let指向point之前的第一個字母,依次交換let和point結尾的字母和*序列。然後再找下一個字母和*序列,直到有一個指標指到了字串首地址。