摘要:
这道题提交的时候都战战兢兢,一道核心思想为BFS的题目也可以出的这么***钻 这道题一个非常亮点的地方,在于求的是线段数目最短,而不是路径长度最短,最开始一直WA在这里了(一个最短路径也许会很曲折的拐很多弯,而线段数目最短也许走的很远,但实际上线段数目少) 这就给BFS使用出了一个大难题,因为如果还按照 阅读全文
摘要:
真的是一道非常好的习题 首先输入读取上,详见代码可以看到两处trick。一个是格式化字符串中结尾的\n,会在读取到我们所需的之后,将停留在缓存区中的空格(对于只要数字的scanf,POJ discuss处可以看到此处坑了很多人,只读入数字的scanf可以用这种技巧解决这个问题),另一个则是%[^\n 阅读全文
摘要:
稠密图,如此前博客所总结的,稠密图使用Prim #include <iostream> #include <algorithm> #include <queue> #include <string> #include <vector> #include <cstdio> #include <cstr 阅读全文
摘要:
此前做过思路类似的,很明显的Kruskal,将一个森林逐渐并成一颗树 又是一个玄学问题,当时写读取顺手写了一个对于多组输入或是单组输入都适用的while写法,不过反而WA了,以后还是具体问题具体分析吧 #include <iostream> #include <algorithm> #include 阅读全文
摘要:
再次因为浮点数g++, c++编译器的问题WA,中间还因为reset没有改过来编译器无脑再WA了一次 这道题很适合Kruskal这种将最开始的联通森林,一点点聚合到一起成为一棵联通的最小生成树的想法,只不过,具体到这道题,是要将原先的p个森林,聚合成为s个森林,所以实现就非常简单了 #include 阅读全文
摘要:
关于刷OJ时经常很多人出现输出格式错误的问题,最好的解决方案是把测评过程自动化解决,不仅提高效率节省人力,机器严谨的检验也比人肉眼看不出疏漏靠谱,特此记录一下构建的自动评测脚本。当前先记录windows下的脚本 @echo off if exist [your_program_name].exe ( 阅读全文
摘要:
做题的感受,稠密图的MST问题还是推荐使用Prim算法,尤其是这种完全图,直接设置dist函数计算距离而非实现构建好一个数组计算时间上没什么差别(此题)空间上优化 #include <iostream> #include <algorithm> #include <queue> #include < 阅读全文
摘要:
这道题的教训好惨痛.... 首先是由于想当然,导致记录边长的数组大小下意识开成了节点数的大小,直接导致一直RE 此外,关于模板,还是要具体问题具体分析,像这道题,开始利用一个模板中记录已知连通分量的想法以此优化,期望提前结束循环。结果表示是不合适的(1 WA),好在快速反应过来这个问题。 思路很清晰 阅读全文
摘要:
prim算法在这道题上应该是领先Kruskal算法一个数量级的(这道题的是一个稠密图,边的数量为$V^2$。 比较玄学的是,代码g++ WA, c++ A了,可能是编译器对于浮点数有不同程度的优化吧 另外,在本地做的时候,遇到了一些小bug,解决之后的心得是,循环过程中的初始化阶段很重要 #incl 阅读全文
摘要:
Kruskal模板题,需要注意,这道题空间限制很严格,第一遍下意识的开了一个记录数组(因为一对节点之间允许多条路经,这里想着进行优化,不过弄巧成拙了,遇到了第一个MLE) #include <iostream> #include <algorithm> #include <queue> #inclu 阅读全文