hdu1224SPFA求最长路加上打印路径】的更多相关文章

题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1224/ 无负环. 代码如下: #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; typedef unsigned long long ull; #define pf printf #define mem(a,b) memset(a,b,sizeof(a)) #define p…
http://acm.hdu.edu.cn/showproblem.php?pid=1317 XYZZY Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3514    Accepted Submission(s): 973 Problem Description It has recently been discovered how t…
Instantaneous Transference Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 6177   Accepted: 1383 Description It was long ago when we played the game Red Alert. There is a magic function for the game objects which is called instantaneous…
(点击此处查看原题) 题意 给出一个有n个结点,m条边的DAG图,每个点都有权值,每条路径(注意不是边)的权值为其经过的结点的权值之和,每条路径总是从入度为0的点开始,直至出度为0的点,问所有路径中权值最大者为多少,如下图,加粗的为权值最大者: 解题思路 这是在一个无起点.终点的图中的求最长路的问题,因此无法像一般的最长路问题那样求解. 首先,因为图中只存在点权,为了方便,我们一般将点权转化为边权:取每条边的权值为其终点的权值,将点权转化为边权. 然后,由于我们每条路径都是以入度为0的点开始,以…
根据拓展欧几里得对于同余方程 $ax+by=c$ ,有解的条件是 $(a,b)|c$. 那么对于构造的序列的数,前一个数 $a$  和后一个数 $b$ ,应该满足 $a*x=b(mod m)$ 即 $ax+my=b$; 建图时,遍历 $0 \to m-1$,对于没有标记的数 $i$ ,在 $gcd(i,m)$ 和 $i$ 之间连边. 但是,仅仅如此只是把每个数和其与m的最大公因数相连,还有些情况没有考虑.只要满足 $(a,m)|b$,那么 $a,b$就可以连边. 对于一个点,如果他指向的点也是一…
http://poj.org/problem?id=1932 spfa求最长路,判断dist[n] > 0,需要注意的是有正环存在,如果有环存在,那么就要判断这个环上的某一点是否能够到达n点,如果能,就说明可以到达,否则,就说明不能. /************************************************************************* > File Name: poj1932.cpp > Author: syhjh > Created…
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=158#problem/F 大致题意:给出n个人和m种关系(ti,si),表示ti的年龄不小于si.问最小能被划分为几个集合.每一个集合都要满足里面的人都无法比較. 思路:对于一条路上的点.它们必然不能被划分到同一个集合中,因此原题变为求一条最长路. 而题目中有可能出现环.因此,先tarjan缩点转化为DAG,而缩点后的每一个点的点权便是该节点中包括的点的个数.然后记忆化求最长路…
http://acm.hdu.edu.cn/showproblem.php?pid=1217 Arbitrage Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9455    Accepted Submission(s): 4359 Problem Description Arbitrage is the use of discrepa…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534 思路:设s[i]表示工作i的开始时间,v[i]表示需要工作的时间,则完成时间为s[i]+v[i].于是可以列出下列不等式: FAS  a b :b开始之后a结束,s[a]+v[a]>=s[b]; FAF a b  :b结束之后a结束,s[a]+v[a]>=s[b]+v[b]; ASF a b  :b结束之后a开始,s[a]>=s[b]+v[b]; ASA a b  :b开始之后a开始,…
题意:有n个点,n-1条边的无向图,已知每个点书的售价,以及在边上行走的路费,问任选两个点作为起点和终点,能获得的最大利益是多少. 分析: 1.从某个结点出发,首先需要在该结点a花费price[a]买书,然后再在边上行走,到达目的地后,在目的地b获得price[b]. 2.因此可以建立两个虚拟结点, 虚拟结点1连向n个点,边权分别为-price[i],表示以i为起点,需花费price[i]买书. n个点连向虚拟结点2,边权分别为price[i],表示以i为终点,通过卖书可得price[i]. 3…