关闭

[置顶] 细节积累

10月8日 1.数组越界永远要仔细检查咋。 2.反复校对好输出变量是否正确。...
阅读(66) 评论(0)

过路费,白书P331UVa10537(dijkstra算法逆推应用,最短路径保存)

知识要点: 1.大小写字母的存储鉴别处理。 2.dijkstra算法的逆推应用(从终点往回走)。 3.字典顺序最小的虽短路径的寻找方法。// UVa10537 Toll! Revisited // Rujia Liu #include #include #include using namespace std;const int maxn...
阅读(4) 评论(0)

1017. A除以B (20)(复)

固定算法。 #include #include using namespace std; int main() { int n,m=0; string str; cin>>str>>n; if(str.length()==1 &&str[0]-'0'<n) cout"0 "0]-'0'<<endl;...
阅读(185) 评论(0)

战争和物流,白书P330LA4080(dijkstra,单源最短路树优化)

本题目综合性非常强,要反复体会。 知识积累: 1.优化版的dijkstra算法的时间复杂度为mlogn floyd算法的时间复杂度为n方。 2.这两个算法都是研究简单图的,两个点之间没有重复边。 3.而本题的最大陷阱就是,两点之间可能有重复边。所以题目中用了一个数组来保存两点之间的所有权。 4.本题的算法综合性非常强,需要反复体会。// LA4080/UVa1416 Warfare...
阅读(13) 评论(0)

林中漫步,白书P330Uva10917(dijkstra求最短路,动态规划)

dijkstra算法求每个点到家的最短路,然后从公司开始,选择solver.d[v] = 0) return ans; ans = 0; for(i...
阅读(17) 评论(0)

机场快线,白书P329UVa11374(dijkstra求最短路)

本题可以说算法思想非常经典。 知识要点: 1.带优先队列优化的dijkstra算法模板,重点留意小于符号的重载方法。 2.如何保存s点到每个点u的最短路d[u],以及路径的存储。 3.邻接边的图存储方式。 4.本题思路有一个特别易错点,商业路径能从X到Y是双向的,也就是说,从X到Y和从Y到X是两种不同的方案。千万不要只计算X到Y这一种方式。for(int j = 0; j < 2; j++...
阅读(17) 评论(0)

宇航员分组,白书P326LA3713(2-SAT算法)

通过了两道2-SAT算法的实例题,对这个算法模型有了一定初步的了解与认知。 昨天讨论了对于一个基本的命题,a且b或者a或b,用刘的术语都叫做一个约束条件,或者说一个子句。每一个子句都对应两个有向边(若a且b,连a->b和b->a,若a或b,则连非a->b和非b->a。关于a或b的情况可以转换成非a且非b不存在,关于这样命题连边的处理,上一题飞机调度刘给了很好的代码)。 关于本题,a和b不能是同一...
阅读(27) 评论(0)

飞机调度,白书P325LA3211(2-SAT算法, 二分查找“最小值尽量大”)

本题是较难处理的一道题涉及的知识点比较多。 知识总结: 1.关于TwoSAT算法:对于两个bool型变量a,b,共有四种组合情况。 a = true; b = true; a = true; b = false; a = false; b = true; a = false; b = false; 对于任意且命题,例如a且非b,则有a = true可直接推出b = false;反之亦然...
阅读(28) 评论(0)

最大团,白书P323UVa11324(有向图强连通分量,dp求GVA权最大路径)

本题是tarjan求有向图强连通分量与dp求GVA权最大路径的一个综合应用。 本题学到的知识点: 1.有向图的强连通分量彼此之间无公共节点,这点与无向图的双连通分量不同。所以本程序可以直接size[sccno[i]]++; // 累加强连通分量大小(结点数)//此处注意,有向图的强连通分量之间无公共节点 2.其实图上动态规划就是有选择的递归,时间复杂度依然是线性,并没有比DFS算法上优化多少。/...
阅读(22) 评论(0)

等价性证明,白书P322LA4287(有向图强连通tarjan算法)

对于一个不在环内的无向图的边,其上每一个节点都是一个单独的强连通分支 有了这一点,tarjan求连通分支算法就很好理解了。 关于本题的解题思想比较精巧,尤其是最后连通分量的收缩处理。//当一个有向图边数最少强连通时,是一个单项环,所有节点的入度出度都为1 //所以刘的做法是先把所有边都加上,然后根据已有的边往下拆,最后剩下的就是需要填充的。 //要注意是入度和出度的最大值,原因白书P322自己讨...
阅读(222) 评论(0)

井下矿工,白书P318LA5131(点双连通分量应用)

本题最关键是题目的分析与模型的实际化应用。尤其在方案总数计算的时候特别容易出错,忽略没有割点的情况。 本题刘竟然为了一个下标从处理一个0开始的问题竟然动用了一个ID结构体,完全不符合往日精简代码的风格啊。 本人在读入数据时稍微改成了–u.–v,在vjudge也通过了测评。 // LA5135 Mining Your Own Business // Rujia Liu #include<cstdi...
阅读(22) 评论(0)
120条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:7078次
    • 积分:1230
    • 等级:
    • 排名:千里之外
    • 原创:120篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论