![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM程序设计
zgkdzw
这个作者很懒,什么都没留下…
展开
-
POJ 1061(转)扩展欧几里德
此题其实就是扩展欧几里德算法-求解不定方程,线性同余方程。 设过s步后两青蛙相遇,则必满足以下等式: (x+m*s)-(y+n*s)=k*l(k=0,1,2....) 稍微变一下形得: (n-m)*s+k*l=x-y 令n-m=a,k=b,x-y=c,即 a*s+b*l=c 只要上式存在整数解,则两青蛙能相遇,否则不能。 首先想到的一转载 2013-04-16 21:07:18 · 661 阅读 · 0 评论 -
POJ 1386(欧拉路)
在进行题目分析前,先澄清一些概念,一些图论中很重要的概念然后给出思路:节点度英文:Node Degree图论中:节点度是指和该节点相关联的边的条数。特别地,对于有向图,节点的入度 是指进入该节点的边的条数;节点的出度是指从该节点出发的边的条数。对于无向图:思路(很重要):将一个单词的首字母和尾字母看做结点,该单词看做是一条边。则依照题意,即判原创 2013-04-19 19:50:01 · 800 阅读 · 0 评论 -
POJ 1041(无向图欧拉回路)
这个题目和POJ 1086不同,1086是有向图欧拉回路,这个是无向图欧拉回路。还有一个很重要的一点,本题目事先声明是连通图,所以不需要进行图遍历验证连通性。剩下的就是判断是否存在欧拉路,然后进行输出。本题目不要求字典序,但是本代码是按照字典序输出的。下面是关于七桥问题以及欧拉路的百度百科,不清楚的朋友可以看看:http://baike.baidu.com/view/142962.htm,原创 2013-04-19 23:13:48 · 776 阅读 · 0 评论 -
POJ 图论基础讲解及习题
无向图的连通性先明白一些概念。完全图:完全图是指任意两个结点之间都有一个边相连,也就是结点两两相连;连通图:连通图是指任意两个结点之间都有一个路径相连;割点:若一个点删除后(也就是与之相连的边统统去掉),无向图不再连通,那么此点称为割点。桥:若一条边断去后,无向图不再连通,那么此边称为桥。桥有一个很好的性质,就是DFS一个无向图,那么这个过程必定要经转载 2013-04-19 10:59:20 · 917 阅读 · 0 评论 -
POJ 1094(拓扑排序)
思路:1.读入一条边后,先做Floyd,确认是否有环,若有环退出,输出"Inconsistency",矛盾2.再做Toposort,判断已读入的几条边是否可以满足输出,在进行拓扑排序时,观察出度为0的点有多少,若有大于两个以上的点,则退出,不考虑,继续读入边,若恰好有一个点,则继续拓扑排序,直到最后n个点都排好序,则输出"Sorted sequence determined",若有转载 2013-04-18 19:01:09 · 548 阅读 · 0 评论 -
poj 2367(拓扑排序TopSort)
题意简单,说到底就是求符合的拓扑排序。代码如下:#include #include #include #define maxn 100using namespace std;struct edge { int v, next; };int g[maxn], n, list[maxn];edge e[maxn*maxn];bool topsortdfs( int原创 2013-04-18 14:51:28 · 687 阅读 · 0 评论 -
poj 2188(归并排序求逆序对)
题目比较绕,但是大意就是求逆序对(帮牛们解开缠绕在一起的绳子),此题允许O(n2),但是nlogn就可以过。主要就是如何得到要排序的序列,main函数里可以清晰看出来。下面是代码:#include #include #include #define M 1001using namespace std;int n, a[M], xu[M], b[M] ;int m原创 2013-04-17 22:35:59 · 736 阅读 · 0 评论 -
poj 2104(划分树)
sorry,这道题目我还没弄明白,如果以后有机会我会好好看别人解法做这个题目的。现在时间紧迫,还有很多基本算法和数据结构不会,只能忍痛割爱了,希望能谅解,离比赛越来越近了,还有很多算法更值得我去学......原创 2013-04-17 19:11:45 · 623 阅读 · 0 评论 -
POJ 2002 二分求解
题意:给出平面上n个点的坐标,求这些点所能组成的正方形的个数。 思路:对n个点排序后,枚举对角线,计算出另外对角的坐标,二分查找它们是否在这n个点中,如果都在,则计数器增1。 利用三角函数公式容易推出另外两点坐标。注意一个合法的正方形会被计数2次,故最终答案要除2。---------------------------------------------------------原创 2013-04-16 22:31:08 · 763 阅读 · 0 评论 -
POJ 2115 扩展欧几里德解线性同余方程
这个题目是其实就是求解线性同余方程,本质就是扩展欧几里德定理。参考我的博文POJ 1061:http://blog.csdn.net/zgkdzw/article/details/8811125那里有详细讲解扩展欧几里德。这里就简单贴上代码:#include #include using namespace std;long long gcd( long long a, l原创 2013-04-16 21:09:37 · 660 阅读 · 0 评论 -
编程之美2013 管道系统
已经好久没写代码了,看到这个题目,模板题目,太水了。马上找个模板套上去,交了。(不过套模板,真是坏习惯......)代码如下:#include #include #include #include #include #include using namespace std;const int MAXN = 202;int c[MAXN][MAXN];int dis[MA原创 2013-04-16 22:45:08 · 704 阅读 · 0 评论 -
POJ 3737 小数学题
因为只做过二分题目,三分没做过,编程之美2013初赛跪了。赛后找个练手,结果发下poj3737,就是数学推导,无语......看来还得再找个练练.......题意:求一个面积为s的圆锥体的最大体积,以及对应的底面半径和高。 思路:基础几何。注意面积 s = s侧面+s底面。对于PI,以后就取PI=acos(-1.0)。S=pi*r*l + pi*转载 2013-04-16 21:04:29 · 715 阅读 · 2 评论 -
编程之美2013 集会
三分题目,比较简单:代码如下:#include #include #include #define maxn 50007#define eps 0.0000009using namespace std;double d[maxn][2];int n;int main(){ int ca, w, i; double a, l, r, t1,原创 2013-04-16 21:02:08 · 672 阅读 · 0 评论 -
POJ 2186(有向图的强连通分量Tarjan)
首先转载ByVoid大神的日志一篇:http://www.byvoid.com/blog/scc-tarjan/这个可以说是我看过最好的讲解tarjian算法的文章了,实例分析,带图片,非常有助于理解,这里请允许我代表我本人以及看过我的这篇博文的读者向THU ByVoid大神致以崇高的敬意!下面转入正题,本题可以说是很明显的tarjian算法题目,如果说看不出来,这里提供一篇日志:http原创 2013-04-20 11:54:12 · 709 阅读 · 0 评论