洛谷P4306 [JSOI2010]连通数 (floyd传递闭包 + bitset优化)

题目描述

度量一个有向图联通情况的一个指标是连通数,指图中可达顶点对个的个数。

如图

顶点 111 可达 1, 2, 3, 4, 51,~2,~3,~4,~51, 2, 3, 4, 5

顶点 222 可达 2, 3, 4, 52,~3,~4,~52, 3, 4, 5

顶点 333 可达 3, 4, 53,~4,~53, 4, 5

顶点 4, 54,~54, 5 都只能到达自身。

所以这张图的连通数为 141414。

给定一张图,请你求出它的连通数

输入格式

输入数据第一行是图顶点的数量,一个正整数N。 接下来N行,每行N个字符。第i行第j列的1表示顶点i到j有边,0则表示无边。

输出格式

输出一行一个整数,表示该图的连通数。

输入输出样例

输入 #1复制

3
010
001
100

输出 #1复制

9

说明/提示

对于100%的数据,N不超过2000。

 

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <bitset>
using namespace std;
typedef long long ll;
const int N = 2010;

bitset<N> mp[N];
int n;
char s[N];    //不知道为什么用string输入会RE

void floyd()
{
    for(int k = 0; k < n; ++k)
    {
        for(int i = 0; i < n; ++i)
        {
            if(mp[i][k])
            {
                mp[i] |= mp[k];
            }
        }
    }
}

int main()
{
    while(~scanf("%d", &n))
    {
        for(int i = 0; i < n; ++i)
        {
            scanf("%s", &s);
            for(int j = 0; j < n; ++j)
            {
                mp[i][j] = s[j] - '0';
            }
            mp[i][i] = 1;
        }
        floyd();
        int ans = 0;
        for(int i = 0; i < n; ++i)
        {
            ans += mp[i].count();
        }
        cout<<ans<<'\n';
    }
    return 0;
}

 

全部评论

相关推荐

03-06 20:09
贵州大学 Java
King987:你这个学历找个中大厂刷实习经历都是可以的,但是项目要有亮点才行,这个什么外卖就不要做了,去找找最新的项目,至少涉及高并发或者是新型的AI技术mcp rag啥的 ,我在出简历点评,但是你这个没什么好点评的,内容太少,而且含金量太低。自己改一改吧,或者看一下我的项目地址中,那里有大厂最近做过的实习项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
6678次浏览 64人参与
# 你的实习产出是真实的还是包装的? #
1331次浏览 32人参与
# 巨人网络春招 #
11223次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7120次浏览 37人参与
# 简历第一个项目做什么 #
31334次浏览 315人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186557次浏览 1115人参与
# MiniMax求职进展汇总 #
23243次浏览 303人参与
# 研究所笔面经互助 #
118794次浏览 577人参与
# 面试紧张时你会有什么表现? #
30416次浏览 188人参与
# 简历中的项目经历要怎么写? #
309597次浏览 4167人参与
# 职能管理面试记录 #
10726次浏览 59人参与
# AI时代,哪些岗位最容易被淘汰 #
62775次浏览 750人参与
# 网易游戏笔试 #
6382次浏览 83人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
7014次浏览 154人参与
# 腾讯音乐求职进展汇总 #
160447次浏览 1107人参与
# 从哪些方向判断这个offer值不值得去? #
56712次浏览 357人参与
# 正在春招的你,也参与了去年秋招吗? #
362761次浏览 2632人参与
# 你怎么看待AI面试 #
179447次浏览 1184人参与
# 小红书求职进展汇总 #
226916次浏览 1357人参与
# 你的房租占工资的比例是多少? #
92153次浏览 896人参与
# 校招笔试 #
467856次浏览 2955人参与
# 经纬恒润求职进展汇总 #
155724次浏览 1085人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务