http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445

题意:

思路:

挺好的一道题目,如果$colormap[i][j]$为'Y',那么这条边的代价就是前面Y出现的次数。也就是说前面必须得都破坏了这样才能轮到这条边,这样一来跑一遍最短路即可。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int maxn=+;
const int mod=1e9+; int n;
int tot;
char s[];
int head[];
int d[];
bool done[]; struct node
{
int v,w,next;
}edge[maxn]; struct HeapNode
{
int d,u;
HeapNode(){}
HeapNode(int d, int u):d(d),u(u){}
bool operator < (const HeapNode& rhs) const
{
return d>rhs.d;
}
}; void addEdge(int u, int v, int w)
{
edge[tot].v=v;
edge[tot].w=w;
edge[tot].next=head[u];
head[u]=tot++;
} void dijkstra(int s)
{
priority_queue<HeapNode> Q;
for(int i=;i<n;i++) d[i]=INF;
d[s]=;
memset(done,,sizeof(done));
Q.push(HeapNode(,s));
while(!Q.empty())
{
HeapNode x=Q.top(); Q.pop();
int u=x.u;
if(done[u]) continue;
done[u]=true;
for(int i=head[u];i!=-;i=edge[i].next)
{
int v=edge[i].v;
if(d[v]>d[u]+edge[i].w)
{
d[v]=d[u]+edge[i].w;
Q.push(HeapNode(d[v],v));
}
}
}
} int main()
{
//freopen("in.txt","r",stdin);
int T;
scanf("%d",&T);
while(T--)
{
tot=;
memset(head,-,sizeof(head));
scanf("%d",&n);
for(int i=;i<n;i++)
{
int cnt=;
scanf("%s",s);
for(int j=;j<n;j++)
if(s[j]=='Y') {addEdge(i,j,cnt);cnt++;}
}
dijkstra();
if(d[n-]==INF) puts("-1");
else printf("%d\n",d[n-]);
}
return ;
}

51nod 1445 变色DNA(最短路变形)的更多相关文章

  1. 51nod 1445 变色DNA(dij)

    题目链接:51nod 1445 变色DNA 看了相关讨论再去用最短路:val[i][j]之间如果是'Y',说明i可以到达j,并且i到达j的代价是i那行 1到j-1 里面'Y'的数量. 最后,求 0到n ...

  2. 51nod 1445:变色DNA 最短路变形

    1445 变色DNA 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有一只特别的狼,它在每个夜晚会进行变色,研究发现 ...

  3. 51NOD 1445 变色DNA

    1445 变色DNA 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2...N-1.研究发现这只狼的基因中存在一个变色矩阵,记为colormap,如果 ...

  4. 51nod 1445 变色DNA ( Bellman-Ford算法求单源最短路径)

    1445 变色DNA 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1 ...

  5. 51nod_1445 变色DNA 最短路模板 奇妙思维

    这是一道最短路模板题,但是在理解题意和提出模型的阶段比较考验思维,很容易想到并且深深进入暴力拆解题目的无底洞当中. 题意是说:给出一个邻接矩阵,在每个点时,走且仅走向,合法路径中编号最小的点.问题是是 ...

  6. POJ-2253.Frogger.(求每条路径中最大值的最小值,最短路变形)

    做到了这个题,感觉网上的博客是真的水,只有kuangbin大神一句话就点醒了我,所以我写这篇博客是为了让最短路的入门者尽快脱坑...... 本题思路:本题是最短路的变形,要求出最短路中的最大跳跃距离, ...

  7. POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...

  8. POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 Description After going through the receipts from your car trip ...

  9. POJ-1797Heavy Transportation,最短路变形,用dijkstra稍加修改就可以了;

    Heavy Transportation Time Limit: 3000MS   Memory Limit: 30000K          Description Background  Hugo ...

随机推荐

  1. js-jquery-插件开发(一)

    jQuery插件开发模式 jQuery插件开发方式主要有三种:1.通过$.extend()来扩展jQuery 主要是在jQuery命名空间或者理解成jQuery身上添加了一个静态方法2.通过$.fn ...

  2. java-JProfiler(三)-进行本地JVM的性能监控-监视本地java程序

    1.打开JProfiler 默认会启动快速窗口[或者使用菜单Session→Start Center]打开 这里监视本地java程序,故在 主界面 2.查看监视界面 这时就可以查看 Instance ...

  3. 十天精通CSS3(11)

    Media Queries——媒体类型(一) 随着科学技术不断的向前发展,网页的浏览终端越来越多样化,用户可以通过:宽屏电视.台式电脑.笔记本电脑.平板电脑和智能手机来访问你的网站.尽管你无法保证一个 ...

  4. Spark On Yarn Cluster生产环境下JVM的OOM和Stack Overflow问题

    1.Spark on Yarn下JVM的OOM问题及解决方式 2.Spark中Driver的Stack Overflow的问题及解决方式 Spark on Yarn cluster mode: 此时有 ...

  5. [py][mx]django邮箱注册的验证码部分-django-simple-captcha库使用

    邮箱注册-验证码 验证码使用第三方库django-simple-captcha 这个安装图形插件步骤官网有哦 - 1.Install django-simple-captcha via pip: pi ...

  6. SSM请求的响应

    1.请求响应文本到页面直接用pw.println("文本信息");打印到页面: 2.如果请求方法前不加@ResponseBody,返回字符串直接转发到对应的页面: 3.如果请求方法 ...

  7. python 读取配置文件总是报错 configparser.NoSectionError: No section:

    本文为作者原创,禁止转载,违者必究法律责任!!! python 读取配置文件总是报错 configparser.NoSectionError: No section: 无论是 python2的版本,还 ...

  8. 转载自(http://snailz.diandian.com/post/2012-10-24/40041265730)

    PHP 5.4.8 添加系统服务命令 之前没注意,PHP 5.4.8 的安装包有自带的系统服务注册文件的 打开编译安装包,换成你自己的路径 cd /mydata/soft/php-5.4.8/ cp ...

  9. 在Java中使用Sqlite数据库

    一.安装 下载最新的 Sqlite Jdbc 驱动程序jar文件,并添加到Java工程的class路径下: 二.使用 以 sqlite Jdbc 驱动版本为 sqlitejdbc-v56.jar 为例 ...

  10. Linux基础命令---gzip

    gzip gzip通过Lempel-ziv算法来压缩文件,压缩的时候保留每个文件的所有者.权限.修改时间.对于符号链接,gzip将会忽略它. 如果压缩的文件名对其文件系统来说太长,则gzip将截断它. ...