直接转换成最短路

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
using namespace std; #define INF 0x7fffffff
#define MAXN 510 struct data
{
int v,w,next;
}e[MAXN*MAXN];
int head[MAXN*MAXN];
int cnt; struct edge
{
int to,len;
}p; struct cmp
{
bool operator () (const edge a,const edge b)
{
return a.len > b.len;
}
}; int n,m;
int S,T;
int x1,y1,x2,y2; int dis[MAXN*MAXN],vis[MAXN*MAXN]; char f[MAXN][MAXN]; void link(int u,int v,int w)
{
e[++cnt]=(data){v,w,head[u]};
head[u]=cnt;
} void Dij(int s)
{
priority_queue<edge,vector<edge>,cmp>q;
memset(vis,0,sizeof(vis));
for (int i=1;i<=n;i++)
dis[i]=INF;
dis[s]=0;
vis[s]=1;
for (int i=head[s];i;i=e[i].next)
if (dis[e[i].v]>dis[s]+e[i].w)
{
dis[e[i].v]=dis[s]+e[i].w;
p.to=e[i].v;
p.len=dis[p.to];
q.push(p);
}
for (int i=1;i<=n-1;i++)
{
if (q.empty())
break;
p=q.top();
q.pop();
while (vis[p.to] && !q.empty())
p=q.top(),q.pop();
int x=p.to;
vis[x]=1;
for (int j=head[x];j;j=e[j].next)
if (dis[e[j].v]>dis[x]+e[j].w)
{
dis[e[j].v]=dis[x]+e[j].w;
p.to=e[j].v;
p.len=dis[p.to];
q.push(p);
}
}
} int main()
{
while (scanf("%d%d",&n,&m))
{
if (n+m==0)
break;
memset(e,0,sizeof(e));
memset(head,0,sizeof(head));
cnt=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
cin>>f[i][j];
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
if (j<m)
{
if (f[i][j]==f[i][j+1])
link(j+(i-1)*m,j+(i-1)*m+1,0),link(j+(i-1)*m+1,j+(i-1)*m,0);
else
link(j+(i-1)*m,j+(i-1)*m+1,1),link(j+(i-1)*m+1,j+(i-1)*m,1);
}
if (i<n)
{
if (f[i][j]==f[i+1][j])
link(j+(i-1)*m,j+i*m,0),link(j+i*m,j+(i-1)*m,0);
else
link(j+(i-1)*m,j+i*m,1),link(j+i*m,j+(i-1)*m,1);
}
}
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
S=x1*m+y1+1;
T=x2*m+y2+1;
n=n*m;
Dij(S);
printf("%d\n",dis[T]);
}
return 0;
}

  

【bzoj2464】中山市选[2009]小明的游戏的更多相关文章

  1. BZOJ2464: 中山市选[2009]小明的游戏

    2464: 中山市选[2009]小明的游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 280  Solved: 124[Submit][Statu ...

  2. bzoj2464: 中山市选[2009]小明的游戏(最短路)

    2464: 中山市选[2009]小明的游戏 题目:传送门 题解: 最短路的裸题... 代码: #include<cstdio> #include<cstring> #inclu ...

  3. 最短路【bzoj2464】: 中山市选[2009]小明的游戏

    2464: 中山市选[2009]小明的游戏 Description 小明最近喜欢玩一个游戏.给定一个n * m的棋盘,上面有两种格子#和@.游戏的规则很简单:给定一个起始位置和一个目标位置,小明每一步 ...

  4. AC日记——中山市选[2009]小明的游戏 bzoj 2464

    2464 思路: 最短路: 代码: #include <cstdio> #include <cstring> #include <iostream> #includ ...

  5. BZOJ 2463: [中山市选2009]谁能赢呢?

    2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1887  Solved: 1390[Submit][Sta ...

  6. bzoj 2463 [中山市选2009]谁能赢呢?(博弈)

    2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1290  Solved: 944[Submit][Stat ...

  7. BZOJ 2463: [中山市选2009]谁能赢呢?(新生必做的水题)

    2463: [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2372  Solved: 1750[Submit][Sta ...

  8. bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?

    http://www.lydsy.com/JudgeOnline/problem.php?id=2463 n为偶数时,一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端,后手每次走向一个 ...

  9. bzoj 2463 [中山市选2009]谁能赢呢? 博弈

    [中山市选2009]谁能赢呢? Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3014  Solved: 2165[Submit][Status][D ...

随机推荐

  1. get data from splunk

    link: http://dev.splunk.com/view/python-sdk/SP-CAAAER5 download SDK & setup with python code: im ...

  2. JS、CSS、Image预加载

    Image预加载 <div class="hidden"> <script type="text/javascript"> var im ...

  3. h5 中MP3 播放暂停 jq

    <!--音乐--> <div id="music"> <img src="../img/music.gif" class=&quo ...

  4. 洛谷——P2055 [ZJOI2009]假期的宿舍

    P2055 [ZJOI2009]假期的宿舍 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 ...

  5. NOIP专题复习1 图论-最短路

    一.知识概述 今天我们要复习的内容是图论中的最短路算法,我们在这里讲3种最短路求法,分别是:floyd,dijkstra,spfa. 那么我们从几道例题来切入今天讲解的算法. 二.典型例题 1.热浪 ...

  6. Go:slice

    一.切片创建方式 func main() { // 创建切片方式1 // 让切片引用一个数组 array := [...]int{1, 2, 3, 4} slice1 := array[1:3] fm ...

  7. NYOJ-476谁是英雄,分解质因子求约数个数!

    谁是英雄 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...

  8. SBT 模板不完全总结,后续待填

    ; ; ; ; ){ ; &&k<T[r].key)||(T[r].right==&&k>T[r].key)){ );      }             ...

  9. BBS+Blog项目流程及补充知识点

    项目流程: 1. 产品需求 (1)基于用户认证组件和Ajax实现登陆验证(图片验证码) (2)基于forms组件和Ajax实现注册功能 (3)设计系统首页(文章列表渲染) (4)设计个人站点页面 (5 ...

  10. 桐桐的糖果计划(vijos 1325)

    背景 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧…… 描述 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致他不得不等到 ...