acm
crazy智障大师mad
努力点技能中
展开
-
POJ-3259 Wormholes (bellman_ford算法)
POJ-3259 题解原创 2016-10-19 18:36:53 · 391 阅读 · 0 评论 -
HDU-1166 敌兵布阵 (裸线段树算法)
题目大意:这道题是中文题,也没什么好解释的,就是查询区间内的和,和更新区间内的值。算法分析:这道题用我之前接触过的树状数组算法也能做(大概,我对树状数组不是很了解)。我去简单了解了一下线段树,大概就是说,将区间不断一分为二。比如总共有n个数,第一个节点保存1~n的总值,左孩子保存1 ~ n/2+1区间内的总值,右孩子保存 n/2+1 ~ n 区间内的总值,如此不原创 2016-11-01 18:36:44 · 842 阅读 · 0 评论 -
软件实践工程OJ-1151 款带奶牛(treat) 区间dp
题目描述:FJ有n(1≤n≤2000)个美味的食物,他想卖掉它们来赚钱给奶牛。这些食物放在一些箱子里,它们有些有趣的特性:(1)这些食物被编号为1~n,每一天FJ可以从这排箱子的头部或者尾部取出食物去卖;(2)这些食物放得越久,年龄越大,价值越大,食物i有一个初始的价值V(i);(3)放了a天后,年龄为a,食物最终的价值为V(i)×a。给定每一个食物的初始价值v(i),请求出F原创 2016-11-10 20:07:10 · 1690 阅读 · 1 评论 -
POJ-1847 Tram (dijkstra算法)
题目大意:有一个火车站,里面有n条轨道,然后有n个轨道切换点。问最多切换几次,能从A轨道切换到B轨道。每个轨道切换点能切换至m条轨道上,其中第一条可以切换的轨道不算切换次数,因为本来就是往那条轨道上运行过去。算法分析:这道题算是比较裸的dijkstra算法,当然还有其他算法。问题的关键是如何建边,其实很简单,这道题的边的权值只有1和0两种情况,0是切换点后面原创 2016-10-27 18:03:18 · 696 阅读 · 0 评论 -
POJ-1062 昂贵的聘礼 (dijkstra算法)
poj-1062 昂贵的聘礼 (dijstra算法)原创 2016-10-14 22:21:28 · 483 阅读 · 0 评论 -
HDU-1532 Drainage Ditches (最大流E-K算法)
题目大意:有一个农田,为了排水,约翰挖了m条排水沟联通各个节点,问最大水流量是多少。算法分析:我之前做一道要用到最大流,于是我去学习最大流算法的解法,看了n篇博客,最后还是看得一知半解,结果最后还是硬生生将模板背了下来,但是不知道为什么要这样做,以后有空再研究研究。最大流问题的关键是寻找增广路,E-K算法是用队列的方式是查询增广路,然后去增广路上的最小流量,然后每条原创 2016-11-07 14:32:11 · 405 阅读 · 0 评论 -
POJ-3349 简单哈希表的应用
题目大意:大概就是说,输入n组数据,每组数据6个,如果n组数据中存在两组数据完全相等(数据顺序忽略)比如1 2 3 4 5 6 3 2 1 4 5 6这两组数据就是相等的算法分析:这道题的数据量很大,如果只是暴力遍历的话,很容易超时。所以可以使用哈希表来查询。哈希表的优点在于查询速度快,缺点在于储存时容易地址冲突。所以需要优化。这里我使用的时开散列法原创 2016-10-12 20:42:29 · 672 阅读 · 2 评论 -
POJ-1511 Invitation Cards (SPFA算法+邻接表)
题目大意:这道题和我以前做过的一道题很像,大概就是说,求得源点到各个点的最短路径相加,和各个点到源点的最短路径相加之和的和。源点到各点的最短路径其实很好求,各点到源点的最短路径其实就是将矩阵翻一下,然后再求源点到各点的最短路径。如果是普通的数据量的话,直接用dijkstra算法做就好了,效率也不低。但是这道题的数据量太大了,dijkstra算法的缺点就是空间复杂度太大(n^2),所以需要用原创 2016-10-23 14:24:01 · 489 阅读 · 0 评论 -
POJ-1050
POJ 1050题解原创 2016-10-12 19:33:19 · 560 阅读 · 0 评论 -
POJ-2240 Arbitrage(floyd详解)
题目大意:大概就是说,有n种货币,然后输入m种对换方式(单向),只要其中有任意一种货币在经过交换后回到源点能比原来的值还要大,那么就输出Yes,反之输出No算法分析:我一开始理解错了题意,以为是指定第一种货币经过交换后最后能比原来的值更大,当时直接拿dijkstra算法做的,后来反复WA。后来我去找博客,才发现,原来是任意一种货币增值就输出Yes。理解题目后我开始用原创 2016-10-21 14:41:04 · 419 阅读 · 0 评论 -
POJ-3660 Cow Contest (floyd+传递闭包)
题目大意:题目大概就是说,有n头牛,对比m头牛后,能确定具体排名的牛的数量是多少 算法分析:一开始我想着是不是用dijkstra算法做(已中毒),后来发现死活做不了,那我就去找博客看解析。 最后才发现只要用传递闭包做就行了,我稍微了解了一下传递闭包后,就跑去自己实现了,返现效果不是很理想。 于是又开始找传递闭包的实现,最后终于把传递闭包实现了出来= =。。。代码实现:#in原创 2016-10-20 20:28:22 · 423 阅读 · 0 评论 -
POJ-1502 MPI Maelstrom (裸dijkstra算法)
POJ-1502 MPI Maelstrom (裸dijkstra模板)原创 2016-10-19 19:52:33 · 406 阅读 · 0 评论 -
HDU-1698 Just a Hook(线段树)
题目大意:dota2里面有个英雄叫屠夫,屠夫有一个钩子武器,武器上面有n个勾钉,一开始这些勾钉全部是用铜做的。后来规定屠夫可以对钩子做m次修改,使得钩子上一部分连续的勾钉改为用银子做的,或者是金子做的。一个铜钉的价值是1一个银钉的价值是2一个金钉的价值是3请问在做m次变换后钩子的总价值是多少。算法分析:这道题无疑使用线段树做,我之前做了几道线段树的题,对线段树已原创 2016-11-02 18:33:18 · 270 阅读 · 0 评论