ICPC-note
Ra_WinDing
这个作者很懒,什么都没留下…
展开
-
STL 中 remove 的运用
—— by A Code Rabbit今天在看别人的解题报告时,发现这么一行代码。*remove(&Pack[0], &Pack[strlen(Pack)], ' ') = '\0'; //删除行中的空格顿时想起前几天写的一个函数:void FilterSpaces(char* expression_new, char* expression) { int po原创 2012-07-04 23:43:06 · 694 阅读 · 0 评论 -
BFS 相对 DFS 的缺点 (UVaOJ 10557)
对于这题来说,DFS相对BFS要好做得多。因为UVaOJ 10557 中的图,是有回路的图。而在用 BFS 的时候,由于是多条路径同时存于队列之中的,所以难以判断是否出现环路,或者出现环路的时候,是在哪一条路上出现的。除非把路径存于状态之中,但是这样将会占据大量的空间和时间。而 DFS ,则是每次模拟一条路径,一旦出现环路,便知道环路的所在,方便原创 2012-07-07 19:33:46 · 830 阅读 · 0 评论 -
BFS 更深一步的认识(UVaOJ 10047)
UVaOJ 10047,暴露出了平时对 BFS 不了解而导致的各种问题。逐点说明:BFS 的队列,应该是一个优先队列。当 BFS 的队列是一个优先队列时,才能够去保证搜索的广度优先性。所以,在每次得到新的状态并准备插入到队列中时,必须维护队列的优先性。BFS 应该在队头判断达到目标(退出循环)的条件。因为,每次通过队头得到一个新的状态时,这个状态原创 2012-07-08 06:05:43 · 574 阅读 · 0 评论 -
long long 与 int(HDOJ 2294)
long long的范围相当于int * int。所以在碰到题目有要求mod运算的时候——当除数超过10000,两数相乘有可能大于int,应该用long long。而当除数接近int时,两数相乘之后,一旦再增加,就有可能大于long long,要做相应处理。处理方式——可以把数字定为unsighed long long。更保险的方式是,在运算的时候,逐步mod。原创 2012-07-16 19:02:13 · 691 阅读 · 0 评论 -
STL:lower_bound & upper_bound & binary_search (UVaOJ 146)
lower_bound( first, last, value ( , cmp ) )upper_bound( first, last, value ( , cmp ) )binary_search( first, last, value ( , cmp ) )这三个是STL中的二分查找函数,前两个查找[ first, last )中,value可以插入的位置。而这两个函数的区别是,l原创 2012-07-18 20:27:16 · 892 阅读 · 0 评论 -
STL:next_permutation (UVaOJ 146)
STL中,next_permutation( first, last ) 可以把[ first, last)中的序列,变成下一个全排列。如果序列没有下一个全排列,就返回false,否则返回true。至于全排列是什么,可以查阅百度百科。(传送门)而 next_permutation( ) 对我们的序列做了什么呢?将一个全排列变成下一个全排列的时候,我们可以这样做。原创 2012-07-18 22:09:53 · 692 阅读 · 0 评论