2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)

Cross the middle

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 36  Solved: 13

[Submit][Status][Web
Board
]

Description

n个点的图,给出任意两点之间的距离,m个询问,每次询问Mid是否可能出现在从Start到End的最短路径上。

Input

第一行n,m

接下来是一个n*n的邻接矩阵,w[i][j]表示i到j的距离

接下来m行

每行start,end,mid

N,m<=100,w[i][j]<=100

Output

每个询问对应一行输出

如果可能出现输出Yes,否则No

Sample Input

3 2
0 1 1
1 0 1
1 1 0
1 2 3
1 3 2

Sample Output

No
No

HINT

Source

2014农大校赛

解题思路:若k在i与j之间的最短路径上,只需满足 dis[i][k] + dis[k][j] = dis[i][j] 即可。

AC代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define INF 12345678
int a[105][105];       //任意两点间的最短路径长度

int main(){
//  freopen("in.txt","r", stdin);
    int n, m, x, y, t;
    while(scanf("%d%d", &n, &m)!=EOF){
        for(int i=1; i<=n; i++)
            for(int j=1; j<=n; j++){
                scanf("%d", &a[i][j]);
                if(i == j)  a[i][j] = INF;
            }

         for(int k=1; k<=n; k++)               //Floyd求任两点之间的最短路径
            for(int i=1; i<=n; i++)
                for(int j=1; j<=n; j++)
                    a[i][j] = min(a[i][j], a[i][k] + a[k][j]); 

        for(int j=0; j<m; j++){
            scanf("%d%d%d", &x, &y, &t);
            if(a[x][t] + a[t][y] == a[x][y])   printf("Yes\n");     //判断
            else  printf("No\n");
        }
    }
    return 0;
}
/**************************************************************
    Problem: 1144
    User: sxk
    Language: C++
    Result: Accepted
    Time:60 ms
    Memory:1736 kb
****************************************************************/
时间: 2024-10-13 23:27:44

2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)的相关文章

2014东北农大校赛--A. Paint it! (预处理)

1141: A.Paint it! Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 13  Solved: 10 [Submit][Status][Web Board] Description 有一个n*m的棋盘,每个格子只可能是黑和白两种颜色,你可以使用染料将某个格子染成黑色或者白色.求最少需要染多少个格子, 能使当前的棋盘变成类似于国际象棋的棋盘(每个格子临边的四个格子颜色都不与该格子的颜色相同). Input n m(n,m<=100) 接下

2014东北四省赛

这次运气真好...要是区域赛也有这样的运气就好了. 怎么说呢,这次比赛事实上有非常多不尽人意的地方,比方不给发气球,不给判题,判错题,题目描写叙述有问题,题目数据有问题,和不给判题等等.. 热身赛,上来提前发了题目,然后发现pc^2上不去...这尼玛,深深的恶意啊,赶快边敲题目边叫来志愿者.还好搞了搞就能连上了. 热身赛果然是用来热身的啊.队友C题仅仅看了两个单词就发现是原题.然后就交了..后来就顺着把题目A掉了.简直的二分专场啊,除了签到题和两道原题,剩下的两道题都是二分...凭借两道原题,热

2014工大校赛题目以及解

a,b题不说. c题思路是每次枚举俩个点,用半径R确定最大的圆(这样的圆有俩个,求圆心手算有点小麻烦),更新最大值,3次方的,100个点,不会超时. D题是枚举+贪心,所有物品一共只能是N+1种被拿的情况:要么全是用R(该位子是若用右手标记R,若用左手标记L):RRR...RRR,或者第一个物品用L:LRRR...RR,.....依次到LLLLLL..LLL,一个序列来记录每个物品是被左手还是右手拿.枚举所有序列,如LLL...RRR,贪心:那必然是一次L一次R,多出来的需要额外开销能量.如LL

2014辽宁ACM省赛 Distance

问题 E: Distance 时间限制: 1 Sec  内存限制: 128 MB 提交: 48  解决: 12 [提交][状态][论坛] 题目描述 There is a battle field. It is a square with the side length 100 miles, and unfortunately we have two comrades who get hurt still in the battle field. They are in different pos

2014辽宁ACM省赛 Prime Factors

问题 L: Prime Factors 时间限制: 1 Sec  内存限制: 128 MB 提交: 36  解决: 28 [提交][状态][论坛] 题目描述 I'll give you a number , please tell me how many different prime factors in this number. 输入 There is multiple test cases , in each test case there is only one line contain

2016 CCPC 东北地区重现赛

1. 2016 CCPC 东北地区重现赛 2.总结:弱渣,只做出01.03.05水题 08   HDU5929 Basic Data Structure    模拟,双端队列 1.题意:模拟一个栈的操作,并在每次询问时,计算栈项到栈底元素nand位运算的值. 2.总结:思路就是看距离栈底最近的0的后面1的个数的奇偶.试了好多种办法,最后还是双端队列简便.总之,贼恶心的题.. #include<iostream> #include<cstring> #include<cmath

18年第十二届东北四省赛

18年第十二届东北四省赛 5.19晚上的东北四省赛的热身赛老师说不用参加,当时白天打了一场之后,也确实脑壳疼QAQ: 5.20很吉利的日期啊,9.30-2.30,还是一样的分工读题,外加看榜,然后很幸运,两道水题,一道A,一道K,队友直接听我们的上去敲,然后交的时候比较谨慎,0罚时,连A两题,然后挂机4小时40分钟?!然后我们讨论了B,然后就一直B....当时觉得B转换为二进制没问题,后来WA,发现有个地方爆Long long,然后又发现有个地方爆Long long,然后把乘法改成除法感觉不会爆

2019年东北四省赛感想

打完东北四省赛之后一直都没空,然后到了放假的时候才有空闲下来,写了这篇感想. 今年的东北四省赛的地点在吉林省的吉林市 ,在东北电力大学,不得不说东北电力大学的伙食还可以,量很足.今年东北四省赛的出题人是杭电的大佬,出了一堆数据不好处理的题,今年的题,比去年的题还要难,1道题手速快点就是铜了,2道题稳铜,4道题手速快是银牌.今年的牌做的挺大的.比赛过程中完全被榜给带偏了,有一道简单题,我们都没有看,有时候跟榜害死人啊,比赛过程中,签到题,8分钟就过了,然后就一直在处理有一道题的数据,那一道题的数据

2014 acm亚洲区域赛(北京)总结

2014 acm/icpc 亚洲区域赛北京站    第一次到外面去比赛,周五下午做高铁到北京,报到注册后就去找在北京的同学玩了.    周六,上午,随便拉了个cf,我们随便看了下,没有写代码.下午的开幕式就那样,几个领导讲几句话,之后的热身赛,A题是数试题集出现多少次ACM,我们理解为在这题出现了多少次?第一次交了个17,wa掉了,交了个19,又wa了,后来好像又交了个13,都wa掉了,想哭了%>_<%,后面的D题更逗,给一段代码,判断是wa还是TLE,只有一个测试文件,并且样例数<=3