SDOI2007 單詞接龍遊戲 dp

2021-08-14 07:27:58 字數 633 閱讀 4979

這個題本來時限2s,但cogs上有乙個點似乎有問題、、洛谷是1s,最後四個點卡人,特判才過、

就是類似最長上公升子串行的dp方式、

另外分析一下時間複雜度:

總複雜度=l1*l2+l2*l3+l3*l4...即對每一長度相同的段乘比他短1的段的數量

由正方形面積最大可知,和相等的情況下,兩個數越接近,乘起來越大

所以設一共有x個不同的段, 總複雜度=(10000/x)^2*x=10000*10000/x,所以x取1時最複雜為100000000,對於2s時限是夠的

碼:

#include#include#include#includeusing namespace std;

int i,j,a,b,c,d,k,ans,f[30005],qj[30005],n,o,len[105];

struct ci

dc[30005];

bool cmp(ci a,ci b)

for(i=1;i<=n;i++)

int lin[10005];lin[0]=0;

printf("%d\n",ans);

for(;o!=0;o=qj[o])

for(i=lin[0];i>=1;i--)

}

200 島嶼數量

複雜度分析 時間複雜度 o m n 其中 m 和 n 分別為行數和列數。空間複雜度 最壞情況下為 o m n 此時整個網格均為陸地,深度優先搜尋的深度達到m n。class solution int numislands vector grid int cnt 0 for int i 0 i gri...

200 島嶼數量

leetcode 200.島嶼數量 島嶼另一種型別 求周長 leetcoed 463.島嶼的周長 廣度優先遍歷 bfs 深度優先遍歷 dfs 2.1 dfs 就是遇到乙個 1 遞迴下去繼續找 1 四周沒有 1 之後,逐層返回到上一層找四周剩餘的 1 本題不需要回溯 直接把 訪問過的標記即可 廣度優先...

200 島嶼數量

給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 grid 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0...