记录一些废话
不要在int main 里开大数组(比如1e7的数组),运行会崩溃的,开在主函数外就行了
memset只能初始化为-1 0 其他数值都不行
由于博客中介绍的大部分算法都是通过神犇们的博客习得的,复制粘贴过来意义不大,
而且由于我懒得打字所以更多的只贴链接当然对于原博文个别描述不清的地方,我也会附上自己对于这些的算法的理解的
在输入一个数字之后,再输入字符,注意要处理好输入数字后的回车键,绝对不能让回车键错误地存进字符中。所以应该这样进行输入
1 | scanf("%d",&a); |
在图论的题目中,删点是大忌,所以要把正向删点转化为逆向建点
long long 类型的输出方式要根据oj的机器而进行正确的选择,否则会报错,win %I64d linux %lld
注意 子串 和 子序列 是有区别的
给定
"pwwkew"
,子串是pww,wwk等很多个子串 是连在一起的
子序列是 pwk,pke等很多个子序列 ,但是子序列中的字符在字符串中不一定是连在一起的。
- OI 中你见过哪些离奇的爆零原因? - Anguei的回答 - 知乎 写道 “对于多组数据题,忘了
memset
或者没有全部memset
,且过了所有大样例”,我就想起了很久很久以前有一次在voj上写一道题,就是因为memset
写错了,导致第二组数据永远是错的。我在笔记本端的QQ里居然还翻到了我因为这个bug请教wmr的聊天记录,可见该bug当时应该折磨了我很久,所以给予了我非常深刻的印象,以致于我三年后还记得……
薛定谔的喵 2017/4/16 9:47:26
那个。。。我想问一下https://vjudge.net/problem/POJ-3278
就是一个简单的暴力bfs
我写的是http://paste.ubuntu.com/24390983/薛定谔的喵 2017/4/16 9:48:36
但是只有第一次输入的数据能得出正确结果薛定谔的喵 2017/4/16 9:50:07
不过由于题目好像只有一组测试数据。。。所以我的代码ac了。。。也就是说算法没问题* * * 2017/4/16 10:08:39
您可以把int bfs()里的q定义之后先清空* * * 2017/4/16 10:08:55
函数里定义一个queue q后,这个q不是空的薛定谔的喵 2017/4/16 10:14:16
如果这个队列不是空的。。。为什么第一次结果是正确的?薛定谔的喵 2017/4/16 10:14:54
我加了一行这个。。还是没用薛定谔的喵 2017/4/16 10:18:14
意思就是如果队列不为空,就一直pop到队列是空的* * * 2017/4/16 10:24:07
您数组清空错了薛定谔的喵 2017/4/16 10:26:36
。。。。
薛定谔的喵 2017/4/16 10:29:07
好吧。。。解决了