ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1383:刻录光盘(cdrom)

2021-10-30 13:03:22  阅读:121  来源: 互联网

标签:std main const int 刻录光盘 cdrom include 1383


刻录光盘

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;

const int N=205;
int n;
int mapp[N][N];
int p[N];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++) p[i]=i;
    for(int i=1;i<=n;i++){
        int x;
        while(scanf("%d",&x)&&x!=0){
            mapp[i][x]=1;//mapp[i][x]=1表示i与x是连通的,有向边
        }
    }
 
	//floyd算法这种用法是真的nice
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                mapp[i][j]=mapp[i][j]||(mapp[i][k]&&mapp[k][j]);
 
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(mapp[i][j])
                p[j]=p[i];//p[i]是p[j]的父节点

    int cnt=0;
    for(int i=1;i<=n;i++)
        if(p[i]==i)
            cnt++;

    printf("%d\n",cnt);
    return 0;
}

标签:std,main,const,int,刻录光盘,cdrom,include,1383
来源: https://www.cnblogs.com/sxrekord/p/burn_disc.html

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有