POJ3592 Instantaneous Transference题解】的更多相关文章

题意: 给一个矩形,矩形中某些点有一定数量的矿石,有些点为传送点,有些点为障碍.你驾驶采矿车(ore-miner truck,我也不知道是什么),从左上角出发,采尽量多的矿石,矿石不可再生.不能往左边或者上面走.传送点可以往左边或上面传.2<=n,m<=40 分析: 可以把矩形看作一张图,每个格子为一个点,每个格子与它右边和下面的点连接一条有向边.每个传送点与它传送的位置连接一条有向边.如果右边或下面为#那么不连.值得注意的是题目并没有保证传送点传送到的一定不是#,所以需要进行判断. 这样,我…
题目链接: id=3592">poj3592 题意: 给出一幅n X m的二维地图,每一个格子可能是矿区,障碍,或者传送点 用不同的字符表示: 有一辆矿车从地图的左上角(0,0)出发,仅仅能往右走或往下走,或者通过传送点  选择是否 传送到特定地点 採过的矿的格子 矿会消失;问这辆矿车最多能採多少矿 解题思路: 首先又一次建图,将图中二维的顶点压缩成一维的顶点             (方便Tarjan算法) 每一个顶点往右,下的顶点建边,传送点的格子往特定顶点建边(建边的两端不能有障碍)…
链接:http://poj.org/problem?id=3592 题意:题目大意:给定一个矩阵,西南角为出发点,每个单位都有一订价值的金矿(#默示岩石,不成达,*默示时佛门,可以达到指定单位),队#外,每个点只能向右走或向下走,并且可以反复经过一个点.如今请求得最多可以获得多大好处 . 一开始看到这个题,会以为是费用流.但是计划上是在tarjan上的.我觉得如果比赛的时候有这道题估计我也就挂了. 因为这个图大部分的点只有两个后续节点, 但是*会有更多的节点,所以说这样会产生环,因此可以吧整个图…
//给一个n*m的地图.坦克从(0 , 0)開始走 //#表示墙不能走,*表示传送门能够传送到指定地方,能够选择也能够选择不传送 //数字表示该格的矿石数, //坦克从(0,0)開始走.仅仅能往右和往下走. //问最多能得到多少矿石 //直接建图,但因为有传送门.须要缩点 //然后用dfs直接搜一条权值最大的路 #include<cstdio> #include<cstring> #include<iostream> #include<vector> #in…
Instantaneous Transference Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 6204   Accepted: 1389 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…
POJ 3592 Instantaneous Transference 题目链接 题意:一个图.能往右和下走,然后有*能够传送到一个位置.'#'不能走.走过一个点能够获得该点上面的数字值,问最大能获得多少 思路:因为有环先强连通缩点.然后问题转化为dag,直接dp就可以 代码: #include <cstdio> #include <cstring> #include <vector> #include <algorithm> #include <st…
http://poj.org/problem?id=3592 题意 :给你一个n*m的矩阵,每个位置上都有一个字符,如果是数字代表这个地方有该数量的金矿,如果是*代表这个地方有传送带并且没有金矿,可以传送到指定的位置,如果是#代表该位置不可走,初始位置在左上角,只能向下或向右走,并且走到传送带的时候可选择是否传送.问当走出去的时候能获得的最大近况数是多少. 思路 :先将二维矩阵转化成一维的点建图,可以向下向右建图,而且传送带也可以建边,缩点之后再建边,最后用spfa求最长路. #include…
http://poj.org/problem?id=3592 #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #define maxn 300000 using namespace std; <<; ][],num,gg[maxn],point[maxn],cc[maxn],ee,head1[maxn],dis[maxn],cnt[maxn],t…
题目链接 给一个n*m的图, 从0, 0这个点开始走,只能向右和向下. 图中有的格子有值, 求能获得的最大值. 其中有些格子可以传送到另外的格子, 有些格子不可以走. 将图中的每一个格子都看成一个点, 然后对它右边和下边的点连边, 如果是'#’就continue,  如果可以传送, 那么就对传送到的那个点连边, 同时也要向右边和下边连边, 因为可以选择不传送. 然后缩点求最长路就可以. 一个数组没有初始化RE了好多发..... #include <iostream> #include <…
http://poj.org/problem?id=3592 题意:给出一个n*m的矩阵,左上角代表起始点,每个格子都有一定价值的金矿,其中‘#’代表岩石不可达,‘*’代表时空门可以到达指定格子,求出可以获得的最大价值. 思路:时空门的存在可能会使得图中出现环,所以先对强连通分量进行缩点,然后对于缩点后的连通分量建立有向无环图,spfa求到起始点的最长路. #include <stdio.h> #include <iostream> #include <string.h>…