【BZOJ2208】[Jsoi2010]连通数

Description

Input

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

Output

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

Sample Input

3
010
001
100

Sample Output

9

HINT

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

题解:一开始以为要tarjan+DFS,后来发现为什么要tarjan~

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int n,cnt,ans,now;
int to[4000010],next[4000010],head[2010],vis[2010];
char str[2010];
void add(int a,int b)
{
to[cnt]=b,next[cnt]=head[a],head[a]=cnt++;
}
void dfs(int x)
{
vis[x]=now,ans++;
for(int i=head[x];i!=-1;i=next[i]) if(vis[to[i]]!=now) dfs(to[i]);
}
int main()
{
scanf("%d",&n);
int i,j,u;
memset(head,-1,sizeof(head));
for(i=1;i<=n;i++)
{
scanf("%s",str);
for(j=1;j<=n;j++) if(str[j-1]=='1') add(i,j);
}
for(i=1;i<=n;i++) now++,dfs(i);
printf("%d",ans);
return 0;
}

【BZOJ2208】[Jsoi2010]连通数 DFS的更多相关文章

  1. BZOJ2208:[JSOI2010]连通数(DFS)

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

  2. bzoj2208 [Jsoi2010]连通数(scc+bitset)

    2208: [Jsoi2010]连通数 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1879  Solved: 778[Submit][Status ...

  3. BZOJ 2208: [Jsoi2010]连通数( DFS )

    n只有2000,直接DFS就可以过了... -------------------------------------------------------------------------- #in ...

  4. [bzoj2208][Jsoi2010]连通数_bitset_传递闭包floyd

    连通数 bzoj-2208 Jsoi-2010 题目大意:给定一个n个节点的有向图,问每个节点可以到达的点的个数和. 注释:$1\le n\le 2000$. 想法:网上有好多tarjan+拓扑序dp ...

  5. [BZOJ2208][Jsoi2010]连通数 暴力枚举

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

  6. [BZOJ2208]:[Jsoi2010]连通数(暴力 or bitset or 塔尖?)

    题目传送门 题目描述 度量一个有向图连通情况的一个指标是连通数,指图中可达顶点对的个数. 在上图中,顶点1可以到达1.2.3.4.5. 顶点2可以到达2.3.4.5. 顶点3可以到达3.4.5. 顶点 ...

  7. 2018.09.11 bzoj2208: [Jsoi2010]连通数(bitset+floyd)

    传送门 听说正解是缩点+dfs? 直接bitset优化floyd传递闭包就行了.(尽管时间复杂度是假的O(n3/32)" role="presentation" styl ...

  8. 【强联通分量缩点】【搜索】bzoj2208 [Jsoi2010]连通数

    两次dfs缩点,然后n次dfs暴搜. #include<cstdio> #include<vector> #include<cstring> using names ...

  9. BZOJ2208 [Jsoi2010]连通数 【图的遍历】

    题目 输入格式 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. 输出格式 输出一行一个整数,表示该图的连通数. 输入样例 3 ...

随机推荐

  1. JavaScript中使用JSON,即JS操作JSON总结

    JSON(JavaScript Object Notation 对象标记) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生 ...

  2. mysql init_connect

    init_connect 服务器为每个连接的客户端执行的字符串.字符串由一个或多个SQL语句组成.要想指定多个语句,用分号间隔开.例如,每个客户端开始时默认启用autocommit模式.没有全局服务器 ...

  3. xcode7 断点失效

    今天下了个别人的demo,运行发现断点不起作用,开始以为是xcode7的问题,因为自升级到xcode7后没怎么用,但后来尝试其它项目,发现是可以断点的,所以才认定不是xcode的问题,而是项目配置的问 ...

  4. Spark-shell 无法启动之网络问题

    由于需要首次手动安装sbt,需要联网,故将虚拟机的网络适配器模式设置为"桥接模式",这样就可以和互联网相连接. 但是后面执行"spark-shell  --master ...

  5. LayerMask小结

    layerMask参数: Raycast (ray : Ray, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerM ...

  6. atitit.恒朋无纸化彩票系统数据接入通信协议

    atitit.恒朋无纸化彩票系统数据接入通信协议 深圳市恒朋科技开发有限公司 Shenzhen Helper Science & Technology Co., Ltd. 恒朋无纸化彩票系统数 ...

  7. Form.ShowWithoutActivation 属性

    获取一个值,该值指示显示窗口时是否激活它. 命名空间:  System.Windows.Forms程序集:  System.Windows.Forms(在 System.Windows.Forms.d ...

  8. Oracle与Mysql插入多行数据

    Oracle 一. insert allinto students values ('b10050501','zl')into students values ('b10050502','zjw')s ...

  9. request.setCharacterEncoding()对通过method="GET"输入的参数无效

    通过GET提交参数有2种 1.浏览器地址栏输入URL?parameter1=value1&parameter2=value2 2.<form method="get" ...

  10. android最佳实践的建议(翻译自android-best-practices)

    Best practices in Android development Use Gradle and its recommended project structure 使用Gradle和其推荐的 ...