|Vijos|图论最短路|P1406 古韵之鹊桥相会
来源:互联网 发布:计算机二级vb上机题库 编辑:程序博客网 时间:2024/04/30 11:17
https://vijos.org/p/1406
两个相邻点相同则权值为0,否则权值为1.
不相邻点权值设为正无穷
然后在上面和下面加上一排数,上面的是起点,下面的是终点
最后Floyd,输出任意一个在起点和终点的距离(G[起点][终点])即可
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#include<vector>#define ms(i,j) memset(i, j, sizeof(i));#define pa2(a,r,c) for (int j=1;j<=c;j++) printf("%d ", j);putchar('\n');for (int i=1;i<=r;i++) {for (int j=1;j<=c;j++) if (a[i][j]>4000000) printf("x "); else printf("%d ", a[i][j]); putchar('\n');}using namespace std;int n,m;int map[25][25];int G[2500][2500];int cnt = 0;void f(int i, int j, int c){if (j-1>0&&map[i][j-1]==map[i][j])G[c][c-1]=0;else if (j-1>0&&map[i][j-1]!=map[i][j])G[c][c-1]=1;if (j+1<=m&&map[i][j+1]==map[i][j])G[c][c+1]=0;else if (j+1<=m&&map[i][j+1]!=map[i][j])G[c][c+1]=1;if (i-1>0&&c-m>0&&map[i-1][j]==map[i][j])G[c][c-m]=0;else if (i-1>0&&c-m>0&&map[i-1][j]!=map[i][j])G[c][c-m]=1;if (i+1<=n&&map[i+1][j]==map[i][j])G[c][c+m]=0;else if (i+1<=n&&map[i+1][j]!=map[i][j])G[c][c+m]=1;}int main () { ms(G,27);scanf("%d%d%*c", &n,&m);for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){map[i][j] = getchar();}getchar();}for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){f(i,j, ++cnt);}}for (int i=cnt+1;i<=cnt+m;i++){G[i-m][i]=G[i][i-m]=0; if(i-1>cnt) G[i-1][i]=G[i][i-1]=0;} cnt += m;for (int i=cnt+1;i<=cnt+m;i++){G[i-cnt][i]=G[i][i-cnt]=0; if(i-1>cnt) G[i-1][i]=G[i][i-1]=0;} cnt += m;for (int k=1;k<=cnt;k++)for (int i=1;i<=cnt;i++)for (int j=1;j<=cnt;j++)if (k!=i&&k!=j&&i!=j){G[i][j] = min(G[i][j], G[i][k]+G[k][j]);}printf("%d\n", G[cnt][cnt-m-1]+1);return 0;}
0 0
- |Vijos|图论最短路|P1406 古韵之鹊桥相会
- VIJOS-P1406 古韵之鹊桥相会 最短路 模型
- 最短路径 vijos P1406古韵之鹊桥相会
- TOJ 2921 古韵之鹊桥相会 / 深搜
- 古韵之刺绣 vijos
- Vijos P1407 古韵之刺绣
- NSU-1596-VIJOS-P1406
- Vijos P1407 古韵之刺绣(动态规划,01背包)
- Vijos1407_古韵之刺绣
- |Vijos|图论最短路|P1046 观光旅游
- 鹊桥相会
- 鹊桥相会
- 鹊桥相会
- 鹊桥相会
- |Vijos|图论最短路|P1082 丛林冒险
- |Vijos|图论最短路|P1155 集合位置
- |Vijos|图论最短路|P1446 最短路上的统计
- [01背包]vijos1407 古韵之刺绣
- IM软件中的语音录制与播放【iOS】
- MVC Bundle.Config.cs
- 高性能的关键:Spring MVC的异步模式
- hdu 1078 FatMouse Chees
- linux下配置ip地址四种方法(图文方法)
- |Vijos|图论最短路|P1406 古韵之鹊桥相会
- 开始专注于Python/Django/HTML/CSS/Javascript/jQuery
- IOS应用开发入门-(IOS项目包含的文件)
- linux awk命令详解
- sturts的映射文件配置的常量 我添加了注解
- HDU - 5862 Counting Intersections
- leetcode Count Complete Tree Nodes
- ested exception is org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 106; cvc-elt.1: 找不到元
- ubuntu14右键打开终端