摘要: 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入 第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100 输出 对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行 样例输入 4[]([])[]((]([)]样例输出 0032队友提供的题目,刚 阅读全文
posted @ 2011-05-13 17:06 奋斗青春 阅读(4921) 评论(1) 推荐(1) 编辑
摘要: 去年省赛的第八题, “ROOM ASSIGNATION”。和我前几天写的 求某个区间中出现最多的数 差不多。。都是要记录左右端点的连续情况。。题目的意思很简单,问你有没有连续的n的房间,如果有,就输出以那个房间开始(最小的)。如果没有就输出0;还有一种情况:客人要退房间,然后退掉n——n+len-1 这些房间。具体的看代码(其中的updata1,updata2,基本上一样,完全可以只用其中的一个函数,为了方便起见,我没有融合,一个是释放的房间,一个是占用房间):# include<stdio.h># include<string.h># define N 50005st 阅读全文
posted @ 2011-05-13 16:09 奋斗青春 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 刚开始写这道题目的时候用的是离散化。。把所有的坐标都给存到数组里面,然后对数组进行排序。。然后每帖一张海报就二分找到两个端点,最后对所有的顶点枚举一遍就行了,,写出来后在pku很快就AC了,之后又在南工交,wa了,感觉存在某些实例过不了。。在pku的discuss里果然发现了,每一个顶点它不单纯的只是一个顶点,它是一段板。比如31 101 36 10这组实例就没能过,因为对于3和6之间的那一段距离访问不到。。之后又想了一种方法,如果排序之后的两个相邻点之间的距离不为1,就增加一个顶点,可以是他们两个之间的任一点,不过为了方便起见,增加s[i-1]+1这个点。(对于上面的那个例子而言,3和6虽然 阅读全文
posted @ 2011-05-13 15:49 奋斗青春 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 去年就见到过这个词,不过一直没有去看,不是很理解其中的算法,可能是对kmp还没能够了解透彻。。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。详见:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html(AC自动机算法详解)贴个模板吧:hdu 2222 经典ac自动机# include<stdio.h># include 阅读全文
posted @ 2011-05-13 10:18 奋斗青春 阅读(6141) 评论(0) 推荐(0) 编辑