题目

1.注意因为要判断能不能到达,所以要在模版里面判断k有没有更新。

2.看懂题目意思和案例的解法很重要。

#define  _CRT_SECURE_NO_WARNINGS
//题目大意:现要进行单词接龙,要求前一个单词的最后四个字符和后一个单词的前四个字符相同,
//给你一串单词,并给出由当前单词找到下一个单词所需花费的时间,
//然后求由第一个单词找到最后一个单词所需的最短时间 //思路:最短路,如果一个单词的最后四个字符和下一个单词的前四个字符相同,
//则在两个单词间连一条有向边,边的权值为第一个单词所需的花费时间,则转换为了图,
//求第一个单词到最后一个单词的最短路,Dijksta算法
#include<string.h>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std; const int MAXN=; #define typec int
const typec INF=0x3f3f3f3f;//防止后面溢出,这个不能太大
bool vis[MAXN];
typec cost[MAXN][MAXN],a[MAXN];
typec lowcost[MAXN];
void Dijkstra(int n,int beg)
{
for(int i=;i<=n;i++)
{
lowcost[i]=cost[beg][i];vis[i]=false;
}
for(int i=;i<=n;i++)
{
typec temp=INF;
int k=-;
for(int j=;j<=n;j++)
if(!vis[j]&&lowcost[j]<temp)
{
temp=lowcost[j];
k=j;
}
if(k!=-){
vis[k]=true;
for(int l=;l<=n;l++)
if(!vis[l])
if(lowcost[l]>lowcost[k]+cost[k][l])
lowcost[l]=lowcost[k]+cost[k][l];
}
}
} int main()
{
int n,i,j,len;
char b[MAXN][],c[MAXN][],d[MAXN][];
while(scanf("%d",&n),n)
{
for(i=;i<=n;i++)
for(j=;j<=n;j++)
cost[i][j]=(i==j)? :INF; for(i=;i<=n;i++)
{
scanf("%d%s",&a[i],b[i]);
len=strlen(b[i]);
c[i][]=b[i][],c[i][]=b[i][],c[i][]=b[i][],c[i][]=b[i][];c[i][]='\0';
d[i][]=b[i][len-],d[i][]=b[i][len-],d[i][]=b[i][len-],d[i][]=b[i][len-];d[i][]='\0';
for(j=;j<i;j++)
{
if(strcmp(d[i],c[j])==)
if(cost[i][j]>a[i])
cost[i][j]=a[i];
if(strcmp(d[j],c[i])==)
if(cost[j][i]>a[j])
cost[j][i]=a[j];
}
}
Dijkstra(n,);
if(lowcost[n]==INF)
printf("-1\n");
else
printf("%d\n",lowcost[n]);
}
return ;
}

HDU 1546 Idiomatic Phrases Game(最短路,Dijsktra,理解题意很重要)的更多相关文章

  1. HDU 1546 Idiomatic Phrases Game 求助!help!!!

    Idiomatic Phrases Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  2. hdu 1546 Idiomatic Phrases Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1546 #include <cstdio> #include <iostream> #in ...

  3. Idiomatic Phrases Game(最短路+注意坑点)

    Tom is playing a game called Idiomatic Phrases Game. An idiom consists of several Chinese characters ...

  4. Hdu-2112 HDU Today (单源多点最短路——Dijsktra算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给你N个公交车站,起点,终点,各站之间的距离,求起点到终点之间的最短距离.(起点终点相 ...

  5. ZOJ-2750 Idiomatic Phrases Game---Dijk最短路

    题目链接: https://vjudge.net/problem/ZOJ-2750 题目大意: 给定一本字典,字典里有很多成语,要求从字典里的第一个成语开始,运用字典里的成语变到最后一个成语,变得过程 ...

  6. HDU - 1546 ZOJ - 2750 Idiomatic Phrases Game 成语接龙SPFA+map

    Idiomatic Phrases Game Tom is playing a game called Idiomatic Phrases Game. An idiom consists of sev ...

  7. Idiomatic Phrases Game(图论最短路)

    Idiomatic Phrases Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  8. ZOJ2750_Idiomatic Phrases Game(最短路)

    Idiomatic Phrases Game Time Limit: 2 Seconds      Memory Limit: 65536 KB Tom is playing a game calle ...

  9. hdu 1546(dijkstra)

    Idiomatic Phrases Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

随机推荐

  1. Java web的读取Excel简单Demo

    目录结构: Data.xls数据:   后台页面: GetExcelData.java       public void doGet(HttpServletRequest request, Http ...

  2. 杭电ACM2092--整数解

    杭电ACM2092--整数解    分析 http://acm.hdu.edu.cn/showproblem.php?pid=2092 一个YES,一个Yes.试了10几次..我也是无语了..哪里都不 ...

  3. C++虐恋:MBCS安装失败导致的四天误工

    情况描述:接收远程队友的C++代码,基于vc120工具集(VS2013),而我的机器上是VS2015,需要安装VS2013(只选MFC,除主程序与MFC外其余的组件全部卸掉).然后开始编译,提示 MS ...

  4. mysql max_allowed_packet自动重置为1024 终结解决

    背景: 测试环境1台centOS机器,最近一段频繁报“ Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too ...

  5. 如何解决win7系统访问共享服务器慢的问题

    最近重新装了win7系统,但发现当访问共享服务器的时候很慢,后来在网上搜索了相关解决办法,在此和大家分享下: 1. 通过“windows键”+“R键”快捷打开“运行”窗口,然后输入cmd命令敲回车,进 ...

  6. 《Linux系统free命令的使用》学习笔记

    free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b ——字节的方式显示内存使用情况 [root@redhat ...

  7. 锋利的jquery-DOM操作

    1 查找节点 ① 可根据jquery选择器来完成节点查找 ② 可用.text()获取节点的文本内容 ③ 可用.attr("attr")获取属性value 2 创建节点 ① 可用jq ...

  8. 省市区联动(MVC分布视图)

    1.调用分布视图 //Html辅助方法 返回参数的值 存储在ProvinceId.CityId.DistrictId中 @{Html.RenderAction("GetProvince&qu ...

  9. jquery循环table中tbody的tr中input:text,将值进行拼接传入控制器并返回状态和描述

    引用jquery $(function(){ $("#按钮id").click(function(){ var nums="";//变量 $("#ta ...

  10. svn迁移

    一.       VisualSVN服务器迁移 场景:把A服务器备份到B服务器 方法: 1.拷贝A上Repositories文件夹到B上 2.打开B上VisualSVN Server Manager ...