poj 2479
也是一道dp的題,需要繞點彎子的最大字串和。
輸入一串數字,從其中任選兩個不相交的字串,要求他們的和最大,輸出這個最大值。
先進行一次普通的求最長字串,不同的是dp不僅僅更新當前的值,還要更新這個值的起點終點。於是就需要乙個結構體陣列來記錄(三個普通陣列也可以的)。這個過程輸入的時候就可以完成。
記錄下最大字串的值,和起點終點分別為m1 l1 r1。然後再進行一次遍歷,找到起點不同於l1的最大字串記為m2 l2 r2。因為m1是該起點中最大的那個,所以找到的m2一定與m1不相交。
最後再一步處理:如果最大的字串中有乙個很大的負數怎麼辦?於是我們從l1遍歷到r1,找出其中最大的那個負數,記m=m1-這個負數,這樣m就可以看作由m1去掉這個負數後形成的兩個字串的和。輸出m和m1+m2中較大的乙個就可以了。
#include
#include
int a[50010];
int max(int a,int b)
struct xx
b[50010];
int main()
}m1=a[0]; m1l=0; m1r=0;
for(i=0;im1)
}m2=-100000;
for(i=0;im2&&b[i].l!=m1l)
}x=0;
for(i=m1l;i<=m1r;++i)
if(a[i]x=a[i];
m=m1-x;
if(n==2) printf("%d\n",a[0]+a[1]);
else printf("%d\n",max(m,m1+m2));
}return 0;
}
13 14寒假作業3
poj 1050 輸入乙個矩陣,求出這個矩陣中數字之和最大的小矩陣的和是多少。開始沒有注意到資料量比較小,還以為是什麼神演算法。後來看到100 100的資料,於是暴力做過掉。列舉小矩陣的寬度,對長度進行dp求最子字串就可以了。區間和用字首和來記錄,敲起來還有點討厭 include include i...
寒假 作業2
大話物聯網 讀書心得 物聯網是繼計算機 網際網路與移動通訊之後的世界資訊產業的第三次浪潮。但是對於我這種連計算機都還不太懂的菜鳥新手和科技無知者來說,物聯網 三個字真的是乙個新興詞彙。在之前我連 物聯網 三個字好像都不太聽到過,更加不可能了解。殊不知我已經和這個世界如此的脫軌,已經被時代遠遠地落在了...
寒假作業9
1.請寫出網頁的基本標籤 作用和語法。basic tags 基 本 標 籤 creates an html document 創 建 一 個html 文 檔sets off the title and other information that isn t displayed on the web...