第乙個案例: code(vs) 1576 最長嚴格上公升子串行
第一種寫法:
#include#include#includeusing namespace std;
int main()
for(int i = 0; i < n; i++)
for(int j = i+1; j < n; j++)
printf("%d\n", ans);
}
第二種寫法:
#include#include#includeusing namespace std;
int main()
dp[i] = max1+1;
ans = max(ans, dp[i]);}}
printf("%d\n", ans);
}
第二個案例:code(vs) 3027 線段覆蓋2
第一種寫法:
#include#include#includeusing namespace std;
struct node
node[1005];
bool cmp(node a, node b)
int main()
sort(node, node+n, cmp);
for(int i = 0; i < n; i++)
for(int i = 0; i < n; i++)
ans = max(ans, dp[j]);}}
printf("%d\n", ans);
}
第二種寫法:
#include #include #include using namespace std;
int n;
struct node
node[1001];
int cmp(const node x, const node y)
int main(void)
sort(node, node+n, cmp);
for(int i = 1; i < n; i ++)
}node[i].v = node[i].v + temp;
if(ans < node[i].v)
}printf("%d\n", ans);
return 0;
}
個人認為第二種寫法比較好。
最長遞增子串行的長度
對於乙個數字序列,請設計乙個複雜度為o nlogn 的演算法,返回該序列的最長上公升子串行的長度,這裡的子串行定義為這樣乙個序列u1,u2.其中ui ui 1,且a ui a ui 1 給定乙個數字序列a及序列的長度n,請返回最長上公升子串行的長度。測試樣例 2,1,4,3,1,5,6 7返回 4採...
最長遞增子串行的數量
陣列a包含n個整數 可能包含相同的值 設s為a的子串行且s中的元素是遞增的,則s為a的遞增子串行。如果s的長度是所有遞增子串行中最長的,則稱s為a的最長遞增子串行 lis a的lis可能有很多個。例如a為 1 3 4,1 2 4均為a的lis。給出陣列a,求a的lis有多少個。由於數量很大,輸出mo...
最長遞增子串行的思索
這是乙個比較古老的演算法問題,在上學期的演算法課中也有所講解,不過當初並沒有理解到位,現在重新思考一下。最長遞增子串行問題 給定乙個序列,找出其中最長的乙個序列,並且滿足對任意的 0 n,m j,都有bn bm。最樸素的一種解法是從a0開始,對給定序列進行遍歷,在遇到分叉時產生分支,最後將最長的序列...