D. 【NOIP2012普及组真题】文化之旅

D. 【NOIP2012普及组真题】文化之旅题解:–这是一道真水题,说实话,正解不会,因为我们的测试数据所有的文化都不排斥,这就很美丽了……..–华丽丽的Floyd就来了…–注意极大值不要超范围了,是真绝望!代码:#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#inc…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

这里写图片描述

题解:

– 这是一道真水题,说实话,正解不会,因为我们的测试数据所有的文化都不排斥,这就很美丽了……..
– 华丽丽的Floyd就来了…
– 注意极大值不要超范围了,是真绝望!

代码:

#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
const int MAXN=105;
const int mmm=99999;

int n,m,k,s,t;
int g[MAXN][MAXN];
int c[MAXN];
int no[MAXN][MAXN];

bool ok(int x,int y){
    if(c[x]==c[y])
        return 0;
    if(no[c[y]][c[x]])
        return 0;
    return 1;
}

int main(){
// freopen("culture.in","r",stdin);
// freopen("culture.out","w",stdout);
    cin>>n>>k>>m>>s>>t;
    for(int i=1;i<=n;i++){
        scanf("%d",&c[i]);
        for(int j=1;j<=n;j++)
            g[i][j]=mmm;
    }
    for(int i=1;i<=k;i++)
        for(int j=1;j<=k;j++)
            scanf("%d",&no[i][j]);
    for(int i=1;i<=m;i++){
        int u,v,l;
        scanf("%d%d%d",&u,&v,&l);
        g[u][v]=l;
    }
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(ok(i,k)&&ok(k,j))
                    g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
                else if(!ok(i,k))
                    g[i][k]=mmm;
                else
                    g[k][j]=mmm;
    if(g[s][t]==mmm)
        cout<<-1;
    else
        cout<<g[s][t];              
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++ 逻辑与或非 逻辑与逻辑或 逻辑非

    C++ 逻辑与或非 逻辑与逻辑或 逻辑非逻辑运算符 与 或 非 amp amp 作用 根据表达式的值返回真值或者假值逻辑非 include iostream usingnamespa intmain 在 C 中 除了 0 都是真 inta 10 cout lt a endl cout a endl system pause return0 逻辑与 iostream

    2025年7月3日
    4
  • oracle用户更改密码_修改system用户密码

    oracle用户更改密码_修改system用户密码前几天通过plsql登录数据库时,提示密码过期,需要修改密码,那就修改呗。改完过了会,再登录,发现用户被锁了。那就去解锁下吧。一、登录数据库服务器suoracle;sqlplus”/assysdba”;alteruserxxaccountunlock;重新登,发现还是锁着的,怀疑是有应用服务一直在尝试连数据库导致锁定,遂先把服务给停掉了。二、查看用户状态…

    2022年7月28日
    6
  • Android MD5加密

    Android MD5加密概述在网络中传输明文是一件非常危险的事情,所以通常将密码加密后传至服务器,由服务器保存密文在登录判定时只需比较密文是否相同即可。MD5加密是一种常用的加密算法,全称为“Message-DigestAlgorithm5”,即消息摘要算法,由MD2、MD3、MD4演变过来的,是一种单向加密算法,是一种不可逆的加密方式MD5优点:压缩性:任意长度的数据,算出的MD5值长度都是固定的。容易计算:从原数…

    2022年7月11日
    19
  • netstat 命令详解

    netstat 命令详解netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。语法选项netstat[选项]-a或–all:显示所有连线中的Socket;-A&amp;amp;amp;amp;amp;lt;网络类型&amp;amp;amp;amp;amp;gt;或–&amp;amp;amp;amp;amp;lt;网络类型&amp;amp;amp;amp;amp;gt;:列出该网络类型连线中的相关地址;

    2022年5月7日
    51
  • avlang php,www.xcnxm.com

    avlang php,www.xcnxm.comDomainName:xcnxm.comRegistryDomainID:2006268495_DOMAIN_COM-VRSNRegistrarWHOISServer:whois.ename.comRegistrarURL:http://www.ename.netUpdatedDate:2016-02-25T06:10:47ZCreationDate:2016-02-2…

    2022年6月12日
    47
  • python merge函数_pandas replace函数

    python merge函数_pandas replace函数在pandas中如果我们想将两个表格按照某一主键合并,我们需要用到merge函数。pd.merge(dataframe_1,dataframe_2,how=”inner”)参数how有四个选项,分别是:inner、outer、left、right。inner是merge函数的默认参数,意思是将dataframe_1和dataframe_2两表中主键一致的行保留下来,然后合并列。outer是相对于inner来说的,outer不会仅仅保留主键一致的行,还会将不一致的部分填充Nan然后保留下来。

    2025年8月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号