51Nod 1478 括號序列的最長合法子段

2021-07-23 04:48:41 字數 1804 閱讀 9242

acm模版

一拿到題,就想到了乙個十分低階的做法,先正著遍歷一遍,遍歷過程中再倒著遍歷(one),不負眾望,tle了四組資料。

無奈,想了一下,只好使用棧來實現了,先預處理一遍,將括號匹配在一起,然後檢索最長串即可(two)。

one:

//  tle

//#include

//#include

////const int maxn = 1e6 + 5;

////char s[maxn];

////int main(int argc, const char * argv)

//// else

//

// numb++;

// if (numa == numb && numa + numb >= res)

//

// else

//

// }

// else if (numa > numb && numb + numb >= res)

//

// else

//

// a++;

// if (a == b && a + b >= res)

//

// else

//

// }

// }

// }

// }

// }

// }

//

// printf("%d %d\n", res, count);

//

// return 0;

//}

two:

#include 

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e6 + 10;

char s[maxn];

int vis[maxn];

int main()

else}}

tmp = res = 0;

for (int i = 1; i <= l; i++)

else

if (tmp == res && res)

else

if (tmp > res)

}cout

<< res << " "

<< count << endl;

return

0;}

51nod 1478 括號序列的最長合法子段

原題鏈結 1478 括號序列的最長合法子段 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 這裡有另乙個關於處理合法的括號序列的問題。如果插入 和 1 到乙個括號序列,我們能得到乙個正確的數學表示式,我們就認為這個括號序列是合法的。例如,序列...

1478 括號序列的最長合法子段

1478 括號序列的最長合法子段 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 這裡有另乙個關於處理合法的括號序列的問題。如果插入 和 1 到乙個括號序列,我們能得到乙個正確的數學表示式,我們就認為這個括號序列是合法的。例如,序列 和 是合法的,但是 和 是不合...

1478 括號序列的最長合法子段(模擬棧)

這裡有另乙個關於處理合法的括號序列的問題。如果插入 和 1 到乙個括號序列,我們能得到乙個正確的數學表示式,我們就認為這個括號序列是合法的。例如,序列 和 是合法的,但是 和 是不合法的。這裡有乙個只包含 和 的字串,你需要去找到最長的合法括號子段,同時你要找到擁有最長長度的子段串的個數。輸入第一行...