描述

迢迢牵牛星,皎皎河汉女。

纤纤擢素手,札札弄机杼;

终日不成章,泣涕零如雨。

河汉清且浅,相去复几许?

盈盈一水间,脉脉不得语。

——《古诗十九首》

传说,上古时期的某个七月七日,王母娘娘为了阻止牛郎织女的爱情,划一道玉钗拆散鸳鸯,使两人“星桥鹊驾,经年才见,想离情、别恨难穷。”于是,“执子之手,与子偕老”成了天下有情人共同的希翼。

在气宇轩昂、玉树临风、才高八斗、英俊潇洒的程文大牛的期盼中,浪漫又迷人的七夕终于来临了。迷离的夜空之上,牛郎织女的絮语伴随着美好的秋光,浸润了古今文人墨客多情的心。他与美若天仙、唇红齿白、蕙质兰心、冰雪聪明的某MM约好在清江的小桥上相会……

天亦有情,此时,浮云错开,从天而降一张丝绸地图:正面上,不同颜色的星星组成了前方道路的俯视图;背面写着“愿有情人终成眷属,无伴者皆得幸福。——瑾姝”。

程文仔细看着这个图,发现自己必须从上到下打通一条道路才能见到某MM,于是程文决定用排云掌和风神腿打开前方的道路——

现用不同的字母来表示不同颜色的星星,连在一起(水平或竖直相邻才算连在一起)的相同颜色的星星,程文可以一次性全部打掉。图样如下:

AABBCCD

AFFBGGD

IIJBKKD

MNNOOPD

QQRRSST

比如在这张地图中,程文可以先打掉最右边的D区域,然后再打通T区域,这样就只用两次就可以打通道路(道路是可以拐弯的,不一定要是一条直线)。

因为使用排云掌和风神腿会耗费体力,耗费干净了程文就没法陪MM一起玩了,所以程文想用最少的次数来打通这条道路,不过程文现在跑去学Java了,这件事就交给你了。

输入

第一行有两个整数,m和n(0<m,n<21);

下面m行,每行n个字母。

输出

一个整数,程文打通道路用功力的最少的次数。

输入样例 1

5 7
AABBCCD
AFFBGGD
IIJBKKD
MNNOOPD
QQRRSST 相邻的格子间若字母相同连0的边 不相同连1的边 然后floyd 或者dijkstra
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
#define N 400+5
int map[N][N],n,m;
char str[N][N];
void check(int i,int j,int cnt)
{
if (str[i][j]==str[i][j+]&&j+<=m)
map[cnt][cnt+]=map[cnt+][cnt]=;
else if(str[i][j]!=str[i][j+]&&j+<=m)
map[cnt][cnt+]=map[cnt+][cnt]=;
if (str[i][j]==str[i][j-]&&j->)
map[cnt][cnt-]=map[cnt-][cnt]=;
else if(str[i][j]!=str[i][j-]&&j->)
map[cnt][cnt-]=map[cnt-][cnt]=;
if (str[i][j]==str[i-][j]&&i-> &&cnt-m>)
map[cnt][cnt-m]=map[cnt-m][cnt]=;
else if(str[i][j]!=str[i-][j]&& i-> && cnt-m>)
map[cnt][cnt-m]=map[cnt-m][cnt]=;
if (str[i][j]==str[i+][j]&&i+<=n)
map[cnt][cnt+m]=map[cnt+m][cnt]=;
else if(str[i][j]!=str[i+][j]&&i+<=n)
map[cnt][cnt+m]=map[cnt+m][cnt]=;
}
int main()
{ cin>>n>>m;
int cnt=;
memset(map,0x3f,sizeof map);
for(int i=;i<=n;++i)
scanf("%s",str[i]+);
for(int i=;i<=m;++i)
map[cnt][i]=;
int end=n*m+;
for(int i=(n-)*(m)+;i<=n*m;++i)
map[i][end]=;
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
check(i,j,++cnt);
for(int k=;k<=cnt+;++k)
for(int i=;i<=cnt+;++i)
for(int j=;j<=cnt+;++j)
map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
cout<<map[][end]+;
}

【noip模拟赛1】古韵之鹊桥相会(最短路)的更多相关文章

  1. NOIP模拟赛 华容道 (搜索和最短路)蒟蒻的第一道紫题

    题目描述 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 B 玩的华容道 ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  4. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  7. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  8. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  9. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  10. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. asp.net连接数据库超时的解决办法

    错误提示:“超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小.  ” 经过几天辛苦写的代码,终于实现了功能丰富的查询功能,但是使用的过 ...

  2. mysql新版本问题

    异常错误:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.c ...

  3. OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型

    OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型 目录 背景介绍 请参考前文OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式 优化 ledCha ...

  4. [iOS]图片高清度太高, 导致内存过大Crash

    先说一下状况, 后台提供的图片太高清了, 每个图片都在2-4MB, iOS上每个页面需要同时下载并展示10-15张. 这个时候, 如果我多滑动collectionView几次, 直接App就崩溃了(r ...

  5. [整理]Error: [ngRepeat:dupes]的解决方法

    sdfsadf <div class="pageNum middle PT10"> <a href="javascript:void(0);" ...

  6. 第9月第15天 设计模式 adapter mvc

    1. 有一道iOS面试题,iOS中都有什么设计模式?很少有答案说包括adapter. gof 书中adapter模式有以下内容: 实现: ... b ) 使 用 代 理 对 象 在这种方法中, T r ...

  7. Anaconda+django写出第一个web app(九)

    今天来学习外键的使用,用外键来连接数据库中的两个表. 当我们的tutorials非常多的时候,目前的显示方式就会使得页面非常凌乱.我们可以考虑把这些教程分为不同的系列,页面只显示标题以及概要等信息,进 ...

  8. Java初转型-SSM配置文件

    文章来源:http://www.cnblogs.com/wxisme/p/4924561.html web.xml的配置                                        ...

  9. click模块使用

    # coding:utf8 import time import click @click.command() @click.option('--id', default='123', help='a ...

  10. HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)

    参考文献: http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地 ...