摘要: 题目大意是,即成语接龙,输入一些成语,每个成语有一个时间t,表示若选择了该成语,则需要时间t才能找到下一个能接上的成语,问从第一个输入的成语走到最后一个输入的成语需要多长时间。将每个成语当做一个节点建图后,即最短路径问题,从节点i到节点j的时间即i的t。#include #include #define INF 50000int map[1010][1010],dist[1010],vis[1010],n;struct idiom{ char front[5],back[5]; int t;}dic[1010];void dij(int u){ memset(vis,0,sizeof(vis) 阅读全文
posted @ 2013-08-11 15:41 贝尔摩德 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1.对于最小生成树的任何一条边e,将它去掉后形成两个集合u和v,则e是u,v两集合间所有边中最小的(假设不是,则可以把e去掉换成一条更小的边,从而形成一棵更小的生成树,矛盾)2.在最小生成树中的第K长边是所有生成树中第K长边的最短边。设该边为e,将它去掉后形成两个集合u和v,若是生成树,那么在u和v间一定有边,所以加上一条边要比e大,此时将新生成树的边排序,在最小生成树中比e大的边有k-1条,加上新添的,比e大的一共有k条,所以新生成树中第K长边大于e。3.次小生成树可由最小生成树换一条边得到 证法一 :可以证明下面一个更强的结论:T是一棵最小生成树,T0是一棵异于T的树,通过变换 T0 -- 阅读全文
posted @ 2013-08-11 14:27 贝尔摩德 阅读(164) 评论(0) 推荐(0) 编辑