[CF] 402 E. Strictly Positive Matrix
一个矩阵,自乘无限次后能否全为正数?
如果n比较小,可以二分一下,但是这里n很大,乘一次都无法接受
可以考虑实际含义:矩阵看成邻接矩阵,那么0就是没有边,其余就是有边。
我们知道邻接矩阵自乘k次就相当于在原图走k步,无限次后是否有0?也就是图能否强连通。
判断就好,整个是环的情况题目限制不存在。
#include<iostream>
#include<cstdio> using namespace std; const int MAXN=; struct Edge{
int next,to;
}e[MAXN*MAXN*];
int ecnt,head[MAXN];
inline void add(int x,int y){
e[++ecnt].to = y;
e[ecnt].next = head[x];
head[x] = ecnt;
} inline int rd(){
int ret=,f=;char c;
while(c=getchar(),!isdigit(c))f=c=='-'?-:;
while(isdigit(c))ret=ret*+c-'',c=getchar();
return ret*f;
} int n; int bl[MAXN],cnt;
int ins[MAXN],sta[MAXN],top;
int dfn[MAXN],low[MAXN],tot;
void tarjan(int x){
dfn[x]=low[x]=++tot;ins[x]=;sta[++top]=x;
for(int i=head[x];i;i=e[i].next){
int v=e[i].to;
// cout<<x<<" "<<v<<endl<<endl;
if(!dfn[v]){
tarjan(v);
low[x]=min(low[x],low[v]);
}else if(ins[v]){
low[x]=min(low[x],dfn[v]);
}
}
if(dfn[x]==low[x]){
int elm;cnt++;
do{
elm = sta[top--];
ins[elm] = false;
bl[elm] = cnt;
}while(elm != x);
}
} int main(){
n=rd();int x;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(rd()) add(i,j);
for(int i=;i<=n;i++) if(!dfn[i]) tarjan(i);
if(cnt!=) return puts("NO"),;
puts("YES");
return ;
}
[CF] 402 E. Strictly Positive Matrix的更多相关文章
- CodeForces 402 E  Strictly Positive Matrix
		Strictly Positive Matrix 题解: 如果原来的 a[i][j] = 0, 现要 a[i][j] = 1, 那么等于 sum{a[i][k] + a[k][j]} > 1. ... 
- Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)
		E. Strictly Positive Matrix You have matrix a of size n × n. Let's number the rows of the matrix f ... 
- [CF #236 (Div. 2) E] Strictly Positive Matrix(强联通分量)
		题目:http://codeforces.com/contest/402/problem/E 题意:给你一个矩阵a,判断是否存在k,使得a^k这个矩阵全部元素都大于0 分析:把矩阵当作01矩阵,超过1 ... 
- CF402E Strictly Positive Matrix 传递闭包用强连通分量判断
		题目链接:http://codeforces.com/problemset/problem/402/E /**算法分析: 这道题考察了图论基本知识,就是传递闭包,可以构图用强联通分量来判断 */ #i ... 
- codeforces 402E - Strictly Positive Matrix【tarjan】
		首先认识一下01邻接矩阵k次幂的意义:经过k条边(x,y)之间的路径条数 所以可以把矩阵当成邻接矩阵,全是>0的话意味着两两之间都能相连,也就是整个都要在一个强连通分量里,所以直接tarjan染 ... 
- CF402E Strictly Positive Matrix(矩阵,强联通分量)
		题意 给定一个 n∗n 的矩阵 A,每个元素都非负判断是否存在一个整数 k 使得 A^k 的所有元素 >0 n≤2000(矩阵中[i][i]保证为1) 题解 考虑矩阵$A*A$的意义 ,设得到的 ... 
- http://codeforces.com/contest/402/problem/E
		E. Strictly Positive Matrix time limit per test 1 second memory limit per test 256 megabytes input s ... 
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.10
		Every $k\times k$ positive matrix $A=(a_{ij})$ can be realised as a Gram matrix, i.e., vectors $x_j$ ... 
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]Contents
		I find it may cost me so much time in doing such solutions to exercises and problems....I am sorry t ... 
随机推荐
- bzoj 2588: Spoj 10628. Count on a tree【主席树+倍增】
			算是板子,把值离散化,每个点到跟上做主席树,然后查询的时候主席树上用u+v-lca-fa[lca]的值二分 #include<iostream> #include<cstdio> ... 
- 360安全中心:WannaCry勒索软件威胁形势分析
			猫宁!!! 参考链接:http://zt.360.cn/1101061855.php?dtid=1101062360&did=210646167 这不是全文,而是重点摘要部分. 2017年5月 ... 
- Nginx的location配置概述【转】
			语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配url路径即可.nginx不对url做编码,因此请 ... 
- RHEL 6.5 ----Postfix邮件服务器
			主机名 IP 服务 master 192.168.30.130 slave 192.168.30.131 软件包介绍 包名 介绍 postfix-2.6.6-2.2.el6_1.x86 ... 
- DoTween学习笔记
			using DG.Tweening: Tweener 首先dotween在游戏刚开始运行时会默认进行一次初始化 DOTween.Init(); 如果为了有更好的效率,可以手动控制最大同时进行dot ... 
- SonarQube+Svn+Jenkins环境搭建----问题总结
			1.配置SVN后提示unable to access to repository,原因是使用的账户没有访问svn的权限,创建新的用户即可.注意新的用户,用户名,密码要跟svn上的权限一致. 创 ... 
- oracle 权限、规则
			Oracle中关于权限与规则简单总结: --1,管理员登录 conn sys/orcl@orcl as sysdba; --2,创建用户方案---必须管理员身份才能操作 create user use ... 
- 由浅入深一个Demo带你认识Restful风格的架构
			java作为一门后端语言,其厉害之处在于web,大家比较熟知的各种网络应用,java都能做,那么在这个移动优先的时代,如何继续发挥java的强大之处呢? 通常是让java作为一个app的服务端,为ap ... 
- 【学习笔记】深入理解js原型和闭包(5)——instanceof
			又介绍一个老朋友——instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ... 
- 初学者可能不知道的vue技巧
			前言 大家好,这里是@IT·平头哥联盟,我是首席甩锅官——老金,今天给大家分享的,一些日常中神秘而又简单的vue的实用小技巧,以及我在我司项目中实用vue的总结和坑,跟大家一起分享,希望能给其他攻城狮 ... 
