杭电(hdu)1181 变形课
变形课
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 18343 Accepted Submission(s): 6597
Harry已经将他所会的全部咒语都列成了一个表,他想让你帮忙计算一下他能否完毕老师的作业,将一个B(ball)变成一个M(Mouse),你知道,假设他自己不能完毕的话,他就仅仅好向Hermione请教,而且被迫听一大堆好好学习的道理.
so
soon
river
goes
them
got
moon
begin
big
0
Yes.Harry 能够念这个咒语:"big-got-them".HintHint
让我们来看一个样例,看下图:
图中红色的数字代表边的权重。
假设我们在最内层检查全部节点X。那么对于A->B,我们仅仅能发现一条路径,就是A->B,路径距离为9。而这显然是不对的,真实的最短路径是A->D->C->B,路径距离为6。造成错误的原因就是我们把检查全部节点X放在最内层,造成过早的把A到B的最短路径确定下来了,当确定A->B的最短路径时Dis(AC)尚未被计算。所以,我们须要改写循环顺序,例如以下:
for ( int k { for ( int i { for ( int j { if ( { // Dis[i][j] } } } } |
这样一来,对于每个节点X。我们都会把全部的i到j处理完成后才继续检查下一个节点。
代码例如以下:
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
int weight[30][30];
void floyd()
{
for(int t=0;t<26;t++)
for(int i=0;i<26;i++)
for(int j=0;j<26;j++)
if(weight[i][t]&&weight[t][j])
weight[i][j]=1;
}
int main()
{
char s[100];
while(gets(s))
{
memset(weight,0,sizeof(weight));
while(s[0]!='0')
{
weight[s[0]-'a'][s[strlen(s)-1]-'a']=1;
gets(s);
}
floyd();
if(weight[1][12])
printf ("Yes.\n");
else
printf ("No.\n");
}
}
杭电(hdu)1181 变形课的更多相关文章
- hdu 1181 变形课
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- [ACM] hdu 1181 变形课
变形课 Problem Description 呃......变形课上Harry碰到了一点小麻烦,由于他并不像Hermione那样可以记住全部的咒语而任意的将一个棒球变成刺猬什么的,可是他发现了变形咒 ...
- hdu 1181 变形课(dfs)
Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- HDU 1181 变形课 (深搜)
题目连接 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形 ...
- hdu 1181:变形课(搜索水题)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- HDU 1181.变形课-并查集
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- hdoj - 1181 变形课
Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- 杭电 HDU ACM 2795 Billboard(线段树伪装版)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 杭电 HDU 4608 I-number
http://acm.hdu.edu.cn/showproblem.php?pid=4608 听说这个题是比赛的签到题......无语..... 问题:给你一个数x,求比它大的数y. y的要求: 1. ...
随机推荐
- Leetcode 375.猜数字大小II
猜数字大小II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜了数字 x ...
- 【UML】关联、依赖、泛化、实现等关系说明
导读:再上一篇博客中,介绍了UML的9种图,现在,将对UML中的关系进行总结.图很重要,但图形中的各种关系也很重要,这扯关系的事儿,从来都是大事儿. 一.基本定义 1.1 总体说明 1.2 具体定义 ...
- DataTable排序
DataRow[] rows = dt.Select("", "name asc"); DataTable t = dt.Clone(); t.Clea ...
- Masonry练习
tableView的cell自动适应,scrollview自动适应,自定义自动布局控件 demo链接:http://pan.baidu.com/s/1jHsrGwQ
- 数据结构1 「在线段树中查询一个区间的复杂度为 $O(\log N)$」的证明
线段树属于二叉树, 其核心特征就是支持区间加法,这样就可以把任意待查询的区间$[L, R]$分解到线段树的节点上去,再把这些节点的信息合并起来从而得到区间$[L,R]$的信息. 下面证明在线段树上查询 ...
- 作诗(bzoj 2821)
Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一篇长度为N的文章,阅读M次 ...
- 【shell】shell编程(三)-if,select,case语句
通过前两篇文章,我们掌握了shell的一些基本写法和变量的使用,以及基本数据类型的运算.那么,本次就将要学习shell的结构化命令了,也就是我们其它编程语言中的条件选择语句及循环语句. 不过,在学习s ...
- 系统进程的Watchdog
编写者:李文栋 /rayleeya http://rayleeya.iteye.com/blog/1963408 3.1 Watchdog简介 对于像笔者这样没玩过硬件的纯软程序员来说,第一次看到这个 ...
- 漫话最小割 part1
codeforces 724D [n个城市每个城市有一个特产的产出,一个特产的最大需求.当i<j时,城市i可以运最多C个特产到j.求所有城市可以满足最大的需求和] [如果直接最大流建图显然会T. ...
- android 服务
1.创建服务 Exported:是否允许除了当前程序之外的其他程序访问这个服务 Enable:是否启用这个服务 点击完成后自动生成 import android.app.Service; import ...