ACM算法进阶之路
文章平均质量分 60
算法是计算机科学领域最重要的基石之一。本专栏以广搜的思路来学习更多的算法,以深搜的思想来扩展算法的深度。
greenapple_shan
这个作者很懒,什么都没留下…
展开
-
hdu1066
先把最后所有的0去掉,方法就是在乘的时候统计因子2的个数,然后每遇到一个5,就去掉一个,那么乘出来就没有最后的0了~然后在乘的时候只保留最后一位就可以了,最后把统计了的2的个数乘回去(在统计的时候把2给提出来,这样就可以避免模的除法了!) /** \brief hdu 1066 * * \param date 2014/7/25 * \param state AC * \return原创 2014-07-25 00:17:50 · 1604 阅读 · 0 评论 -
hdu 1009--greedy
/** \brief hdu 1009--greedy * * \param date 2014/7/18 * \param state AC * \return * */ #include #include #include #include using namespace std; const int MAXN=1001; struct Data { int原创 2014-07-19 21:36:20 · 809 阅读 · 0 评论 -
poj1251--Kruskal
/* * poj1251-- Kruskal * date 2014/7/15 * state AC */ #include #include #include #include #include using namespace std; int const MAXN=30+100; int u[MAXN]; int v[MAXN]; int w[MAXN+50]; int p[原创 2014-07-15 14:10:38 · 859 阅读 · 0 评论 -
poj1502--Dijkstra
/** \brief poj 1502--Dijkstra * * \ date 2014/7/15 * \ state AC * \ * */ #include #include #include #include using namespace std; #define inf 0x03f3f3f3f const int MAXN=101; int n; int co原创 2014-07-16 22:05:41 · 869 阅读 · 0 评论 -
poj1860--Currency Exchange
Bellman-ford算法的反向应用--正循环检查 /** \brief poj 1860 Bellman-Ford * * \param date 2014/7/24 * \param state AC * \return memory 708K time 141ms * */ #include #include #include using namespace std原创 2014-07-30 22:12:41 · 1103 阅读 · 0 评论 -
poj2632--模拟
/** \brief poj 2632 * * \param date 2014/8/3 * \param state AC * \return memory 776k time 16ms * */ #include #include #include using namespace std; const int MAXN=101; int Map[MAXN][MAXN];原创 2014-08-03 21:24:13 · 979 阅读 · 0 评论 -
poj3253
/** \brief poj 3253 * * \param date 2014/8/8 * \param state AC * \return memory 1124K time 125ms * */ #include #include #include #include using namespace std; struct number { //int x;原创 2014-08-08 18:35:08 · 980 阅读 · 0 评论 -
并查集
并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构: Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。 Union:将两个子集合并成同一个集合。 为了更加精确的定义这些方法,需要定义如何表示集合。一种常用的原创 2014-01-14 20:53:43 · 698 阅读 · 0 评论 -
ACM输入输出格式总结
一,输入不说明有多少个Input Block,以EOF为结束标志。 #include int main() { int a,b; while(scanf("%d %d",&a, &b) != EOF) printf("%d\n",a+b); } 说明 1.Scanf函数返回值就是读出的变量个数,如:scanf(“%d %d”, &a, &b原创 2014-01-16 14:54:20 · 2015 阅读 · 0 评论 -
poj1125--Floyd
题解: 有N个股票经济人可以互相传递消息,他们之间存在一些单向的通信路径。现在有一个消息要由某个人开始传递给其他所有人,问应该由哪一个人来传递,才能在最短时间内让所有人都接收到消息。 显然,用Floyd算法,然后选出每个点到其他点的最长距离当中的最短距离。 /** \brief poj 1125 Floyd * * \param date 2014/7原创 2014-07-31 15:15:11 · 1017 阅读 · 0 评论 -
BFS
BFS思想: l1.从图中某顶点v0出发,在访问了v0之后,搜索v0的(所有未被访问的)邻接顶点v1.v2… l2.依次从这些邻接顶点出发,广搜图中其它顶点,直至图中所有已被访问的顶点的邻接顶点都被访问到。 l3.若此时图中还有未被访问到的顶点,则再选择其中之一作为v0重复上述过程。直到图中所有顶点均被访问到。 //搜索过程没有回溯,是一种牺牲空间换取时间的方法。时间复杂度:O(V原创 2014-01-12 15:39:29 · 722 阅读 · 0 评论 -
poj1753--模拟
/** \brief poj 1573 * * \param date 2014/8/5 * \param state * \return memory 744k time 0ms * */ #include #include #include #include using namespace std; const int MAXN=11; int Map[MAXN][M原创 2014-08-05 16:42:34 · 959 阅读 · 0 评论