HDU1181【有向图的传递闭包】

HDU1181【有向图的传递闭包】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181

题意很简单。

有用并查集做的。我这里用传递闭包做。

有向图的传递闭包采用Floyd思想,可以判断任意两点之间是否有通路。

PS:Floyd思想:对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。

这题代码:#include <iostream>

 

#include <cmath>
#include <cstring>
using namespace std;

int map[200][200];

void floyd()
{
    for(int i='a'; i<='z'; i++)
    {
     for(int j='a'; j<='z'; j++)
     {
      if(map[i][j])  //如果i->j 
      {
       for(int k='a'; k<='z'; k++) 
       {
        if(map[k][i]) //并且k->i 
        {
         map[k][j] = 1; //那么k->j 
        }
       }
      }
    }
  }
}

int main()
{
    char str[100];
    memset(map,0,sizeof(map));
    while(cin>>str)
    {
        if(strcmp(str,"0") == 0)
        {
             floyd();
            if(map['b']['m'] == 1)
            {
                cout<<"Yes."<<endl;
            }
            else
            {
                cout<<"No."<<endl;
            }
            memset(map,0,sizeof(map));
        }
        else
        {
            int len = strlen(str);
            map[str[0]][str[len-1]] = 1;
        }
    }
    return 0;
}

 

自己犯的错误:

for(char i=’a’;i<=’z’;i++)
            for(char j=’a’;j<=’z’;j++)
               for(char k=’a’;k<=’z’;k++)
                {

                    if(judge[adj[i]][adj[j]]==1&&judge[adj[j]][adj[k]]==1)
                        {

                            judge[adj[i]][adj[k]]=1;
                        }
                }

结合Floyd做法来实现。(尽管DP原理偶还不是很懂。)

传递闭包自己写的,来一个错误例子  bg  ga am….自己写这个显然可以找到反例。这个应该没问题。

另外数组下标是可以char类型的。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 二分归并排序算法_并归排序法

    二分归并排序算法_并归排序法#include<iostream>#include<climits>usingnamespacestd;voidMerge(intSourceArry[],intStart,intMid,intEnd){ intlen1,len2;…

    2022年10月22日
    0
  • mini usb接口图片_linux查看接口速率

    mini usb接口图片_linux查看接口速率华硕X450V笔记本更换intelAX200无线网卡@TOC下面内容以更换AX200为主要内容,还涉及无线网卡接口(minipcie和m.2/ngff),网线,路由器,无线网卡天线,AX200驱动(包括刷Killer驱动的问题,不建议刷!!!,没什么卵用)等与网卡性能相关的内容。目前使用情况是:有5G爽,信号强,连接速度高,稳定不掉线,网速快,有蓝牙爽歪歪。笔记本是2013年买的,老款了。换了三星860EVO500G,光驱改放机械,内存加了4G,成8G双通道,电池换了一次,又要换了。现在5Gw

    2022年9月8日
    0
  • SQL注入-报错注入[通俗易懂]

    SQL注入-报错注入[通俗易懂]sql注入之报错注入的演示与介绍

    2022年9月29日
    0
  • PIC单片机C语言简记「建议收藏」

    PIC单片机C语言简记「建议收藏」1.PICC安装:PICC编译器可以直接挂接在MPLAB-IDE集成开发平台下,实现一体化的编译连接和原代码调试。使用MPLAB-IDE内的调试工具ICE2000、ICD2和软件模拟器都可以实现

    2022年8月2日
    5
  • 海思hi3516ev100开发板_海思V200

    海思hi3516ev100开发板_海思V2001安装ubunu14我的ubuntu14如下#uname-aLinuxubuntu4.4.0-142-generic#168~14.04.1-UbuntuSMPSatJan1911:26:28UTC2019x86_64x86_64x86_64GNU/Linux2软件包安装步骤1.配置默认使用bash执行sudodpkg-recon…

    2022年9月23日
    0
  • go分析和kegg分析_GO和KEGG富集分析(Metascape数据库)「建议收藏」

    介绍生物信息学研究中,获取基因列表的GO和KEGG富集分析的需求非常常见。目前有许多生物信息学手段或者数据库可以实现基因富集分析,例如DAVID,但它们有些是收费的,有些不易于使用且很少维护。例如DAVID曾经有六年的时间(2010-2016)没有维护数据库,最近的更新也已经两年半了。而Metascape每月更新其相关的40多个数据库,以确保提供最准确的结果。因此Metascape数据库可以作为富…

    2022年4月18日
    101

发表回复

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

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