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 到乙個括號序列,我們能得到乙個正確的數學表示式,我們就認為這個括號序列是合法的。例如,序列 和 是合法的,但是 和 是不合法的。這裡有乙個只包含 和 的字串,你需要去找到最長的合法括號子段,同時你要找到擁有最長長度的子段串的個數。輸入第一行...