关闭
当前搜索:

[置顶] 细节积累

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

巴比伦塔,紫书P269UVa437(DP)

本题比较经典歌常规。 尝试用每个立方体的每个面作为底,然后逐层递归计算出最大解,用dp保存好算过的解。// UVa437 The Tower of Babylon // Rujia Liu #include #include #include using namespace std;#define REP(i,n) for(int i = 0...
阅读(60) 评论(0)

旅行,紫书P269UVa1347(DP)

这道题其实能用动态规划,主要由于两点: 1.节点是按x大小给出并编号的。 2.最短路径一定包含1-2遍。或者说最短路的走法一定是优先编号小的点先走,需要做的决策是哪个人走这个点而已。 所以本题才可以用dp求解。// UVa1347 Tour // Rujia Liu #include #include #include using names...
阅读(77) 评论(0)

城市里的间谍,紫书P267UVa1025(GVA上的DP)

动态规划最关键的就是确定真正能影响到决策的条件, 本题题目这么复杂,但是真正对决策产生影响的就是当前时间以及当前所处的车站。而决策只有三种,不换车,换往右开的车,换往左开的车。 而且这种组合取最大最小值的问题,就是硬币问题的模型。// UVa1025 A Spy in the Metro // Rujia Liu #include #include usin...
阅读(129) 评论(0)

邦德,白书P345UVa11345(最小生成树,无根树转有根树,最近公共祖先,二进制快速查找)

本题是一道非常非常优秀的题目,题目的综合性,考察的知识点实在是太丰富了。而且刘的算法思路也足够精简优化,是一道知道反复复习多次的题目。 知识积累: 1.首先,求求最小瓶颈路问题可不是最短路问题,因为最长边最小的路径不一定是最短路。比如A到B之间有两条路径,其中一条所经过的边的权值为1,1,1,1,1,1,1,1,第二条所经过的路径为2。 2.由于Kruskal算法生成的最小生成树仅仅是原图的一...
阅读(82) 评论(0)

秦始皇修路,白书P345LA5713(最小生成树,Kruskal算法)

思路关键,道士可以修任意一条道路,为了节省财力,正常应该让道士打通权值最大的一条路。但是仔细分析,由于道士没有成本,打通道路无花费,所以如果k和m城市之间的道路权值最大,并不一定非要打通k和m城市,只要两城市之间的唯一路径通过km边都可以打通这两个城市。所以本题加了第二个限制条件,尽量满足道士打通的城市人口最大….. 知识要点: 1.Kruskal算法求最小生成树。 2.DFS求书上任意两节点...
阅读(80) 评论(0)

在环中,白书P333UVa11090(bellman—ford负圈判定,二分查找)

知识总结: 1.通过本题详细理解了bellman—ford算法与dijkstra算法的原理以及具体操作细节差异。 2.本题是bellman—ford判断负圈的特殊形式。因为要判负圈,所以初始化d[]数组时的操作与原模板略有不同: queue Q; memset(inq, 0, sizeof(inq)); memset(cnt, 0, sizeof(cnt));...
阅读(80) 评论(0)

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

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

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

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

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

dijkstra算法求每个点到家的最短路,然后从公司开始,选择solver.d[v] = 0) return ans; ans = 0; for(i...
阅读(82) 评论(0)
126条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:11898次
    • 积分:1316
    • 等级:
    • 排名:千里之外
    • 原创:126篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论