- 博客(4)
- 资源 (4)
- 收藏
- 关注
原创 两道字符串水题 记录一下 zjut 1605 和 zjut 1703
Regular BracketsZJUT1605 题意是给一系列括号,只有[]和()是匹配的,还有[R],(R),[]R,()R,R[],R()这几种是匹配的。问最长的匹配的字串是什么。原题的数据量只有100,实际可以提高到100000,因为是O(N)的算法。大概是用栈保存那些未被匹配的字符和其位置,然后从栈顶到尾找到那些每两个相邻栈元素之间的距离最长的即可。注意的是要把首尾考虑进去。 #i
2012-03-30 20:29:41 349
原创 hdu 4171 Paper Route bfs
题目意思是给N个点,然后还有一个办公室。下面N+1行输入从办公室(即0号)开始每个到学校的距离,然后N行,正好是棵树,输入这棵树以及权值。要求遍历树上每一点然后到学校的最短的那个距离。算法是首先存下每个点到办公室的点,即把办公室的点看为根,然后通过bfs求得每个点到根的距离,然后把树的总距离求出,因为只要不是终点到根的路径,都是需要走两次的,所以取个min(total*2 - i->0 + i->
2012-03-29 23:15:02 636
原创 hdu 1003 最大子序列和 简单题
前面有提到过最大子序列和,这道题多了一个要指出最大子序列和的头尾,随便加了两个指针,WA了一次,因为没有考虑指针重合的特殊性,即最大子序列和其实就是一个数。改完就A了。作为前面最大子序列的范例吧。#include #include #include #include using namespace std; int main() { int t,m=0; scanf("%d",&t); wh
2012-03-17 19:42:28 327
原创 初步线段树 hdu1166
#include #include #include using namespace std; #define MAX 50000 struct node { int l,r,num; }; node maintree[4*MAX]; void settree(int n,int l,int r) { maintree[n].l=l; maintree[n].r=r; maintre
2012-03-17 16:38:06 332
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人