2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961
传递
Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 42 Accepted Submission(s): 16
我们称图G是一个竞赛图,当且仅当它是一个有向图且它的基图是完全图。换句 话说,将完全图每条边定向将得到一个竞赛图。
下图展示的是一个有4个顶点的竞赛图。
现在,给你两个有向图P = (V,Ep
)和Q = (V,Ee
),满足:
1. EP
与Ee
没有公共边;
2. (V,Ep⋃Ee
)是一个竞赛图。
你的任务是:判定是否P,Q同时为传递的。
第一行有一个正整数,表示数据的组数。
对于每组数据,第一行有一个正整数n。接下来n行,每行为连续的n个字符,每 个字符只可能是’-’,’P’,’Q’中的一种。
∙
如果第i行的第j个字符为’P’,表示有向图P中有一条边从i到j;
∙
如果第i行的第j个字符为’Q’,表示有向图Q中有一条边从i到j;
∙
否则表示两个图中均没有边从i到j。
保证1 <= n <= 2016,一个测试点中的多组数据中的n的和不超过16000。保证输入的图一定满足给出的限制条件。
4
-PPP
--PQ
---Q
----
4
-P-P
--PQ
P--Q
----
4
-PPP
----
--Q-
4
-PPP
--PQ
----
--Q-
N
T
N
在下面的示意图中,左图为图为Q。
注:在样例2中,P不是传递的。在样例4中,Q不是传递的。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<vector>
#include<bitset>
#define ll __int64
using namespace std;
int t;
char mp[][];
vector<int> p[];
vector<int> q[];
struct node
{
bitset<> from;
bitset<> to;
} pp[],qq[];
int n;
void init()
{
for(int i=; i<n; i++)
{
p[i].clear();
q[i].clear();
pp[i].from.reset();
pp[i].to.reset();
qq[i].from.reset();
qq[i].to.reset();
}
}
int main()
{
scanf("%d",&t);
for(int i=; i<=t; i++)
{
scanf("%d",&n);
init();
for(int j=; j<n; j++)
scanf("%s",mp[j]);
for(int j=; j<n; j++)
{
for(int k=; k<n; k++)
{
if(mp[j][k]=='P')
p[j].push_back(k);
if(mp[j][k]=='Q')
q[j].push_back(k);
}
}
int flag1=,flag2=;
for(int k=; k<n; k++)
{
for(int j=;j<p[k].size();j++)
{
pp[k].to[p[k][j]]=;
pp[p[k][j]].from[k]=;
}
for(int j=;j<q[k].size();j++)
{
qq[k].to[q[k][j]]=;
qq[q[k][j]].from[k]=;
}
}
for(int k=; k<n; k++)
{
for(int l=; l<n; l++)
{
if(pp[k].from[l]==)
{
bitset<> exm;
exm=pp[l].to&pp[k].to;
if(exm!=pp[k].to)
{
flag1=;
break;
}
}
}
for(int l=; l<n; l++)
{
if(qq[k].from[l]==)
{
bitset<> exm;
exm=qq[l].to&qq[k].to;
if(exm!=qq[k].to)
{
flag2=;
break;
}
}
}
}
if(flag1&&flag2)
cout<<"T"<<endl;
else
cout<<"N"<<endl;
}
return ;
}
2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961的更多相关文章
- 2016年中国大学生程序设计竞赛(合肥)-重现赛1008 HDU 5968
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- 2016年中国大学生程序设计竞赛(合肥)-重现赛1009 HDU 5969
最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descr ...
- HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))
最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem De ...
- HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Des ...
- HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))
传递 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem ...
- HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))
扫雷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
- HDU 5937 Equation 【DFS+剪枝】 (2016年中国大学生程序设计竞赛(杭州))
Equation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- HDU 5936 Difference 【中途相遇法】(2016年中国大学生程序设计竞赛(杭州))
Difference Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
随机推荐
- Xcode6如何自己添加pch文件?
1.先自己添加.pch文件(右击new file) 2.最重要的一步,如何让工程识别! 在Build settings里搜索Prefix Header, 第一个箭头选择yes,第二箭头把你的pch的路 ...
- C#之委托
委托是C#中非常重要的一个概念,并在C#中得到了丰富的应用,如事件,线程等.那什么是委托呢?具体来说,委托是一种引用方法的类型.一旦为委托分配了方法,委托将与该方法具有完全相同的行为.委托方法的使用可 ...
- HTML 中级2
<colgroup> 标签用于对表格中的列进行组合,以便对其进行格式化. 通过使用 <colgroup> 标签,可以向整个列应用样式,而不需要重复为每个单元格或每一行设置样式. ...
- Java Mysql分页显示
public class View { private int currentPage; private int pageSize; private int recordCount; public V ...
- 跨域请求ajax jsonp的使用解惑
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Paths_Quartz2D
Paths中的几个重要元素 Points void CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y ); 指定 ...
- web开发学习之Http协议
web入门 请求: request 浏览器向服务器发信息 响应:response 服务器回复浏览器 一个请求发出,一定有且仅有一个响应 http协议:对浏览器客户端余服务器的数据传输规范 ht ...
- LightOJ 1104
题意: 给你一年有n天,求至少有m人使得至少有两个人在同一天生日的概率不少于0.5. 分析: 任意两个人不在同一天生日的概率为C(n,m)*m!/n^m,它的对立事件A为至少有两个人在同一天生日, 则 ...
- 浅谈Extjs radiogroup change事件与items下的checked属性
在使用Extjs制作crud时,由于添加和修改界面的高度相似,使用了相同的row字段. 在角色字段中使用了change监听事件,用于动态的无效化权限分配字段,因为权限分配界面默认没有隐藏,设定了che ...
- XML特殊字符处理
XML共有5个特殊字符,分别为:&<>"' 如果XML文件中需要包含如上5个特殊字符,有两种方式: 1.将包含特殊字符的字符串放在<![CDATA[]]>中 ...