http://acm.hdu.edu.cn/showproblem.php?pid=5961

题意:中文题意。给出两个图,判断这个两个图是否都是传递的。注意一下传递的定义要看清,一开始没看清连样例都看不懂。

思路:点数很少,有了异或那题的暴力之后,这题继续试着爆搜了一下,也能过。主要存两个图,然后dfs的时候传入当前点的上一个点fa,如果 fa 和 下一个点 v 之间没有边相连,那么就不满足条件了。

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <iostream>
#include <stack>
#include <map>
#include <queue>
using namespace std;
#define N 2050
#define INF 0x3f3f3f3f
struct node
{
int v, nxt;
}e1[N*N], e2[N*N];
int head1[N], head2[N], tot1, tot2;
int m1[N][N];
int m2[N][N];
bool vis[N], f;
char maze[N][N]; void add1(int u, int v)
{
e1[tot1].v = v; e1[tot1].nxt = head1[u]; head1[u] = tot1++;
} void add2(int u, int v)
{
e2[tot2].v = v; e2[tot2].nxt = head2[u]; head2[u] = tot2++;
} void dfs1(int u, int fa)
{
vis[u] = ;
for(int i = head1[u]; ~i; i = e1[i].nxt) {
int v = e1[i].v;
if(vis[v]) continue;
vis[v] = ;
// printf("dfs1 : %d, %d, %d\n", fa, u, v);
if(!m1[fa][v]) f = ;
dfs1(v, u);
}
} void dfs2(int u, int fa)
{
for(int i = head2[u]; ~i; i = e2[i].nxt) {
int v = e2[i].v;
if(vis[v]) continue;
vis[v] = ;
if(!m2[fa][v]) f = ;
dfs2(v, u);
}
} int main()
{
int t;
scanf("%d", &t);
while(t--) {
int n;
scanf("%d", &n);
for(int i = ; i < n; i++) scanf("%s", maze[i]);
memset(m1, , sizeof(m1));
memset(m2, , sizeof(m2));
memset(head1, -, sizeof(head1));
memset(head2, -, sizeof(head2));
tot1 = tot2 = ;
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
if(maze[i-][j-] == '-') ;
else if(maze[i-][j-] == 'P') {
m1[i][j] = ; add1(i, j);
} else {
m2[i][j] = ; add2(i, j);
}
}
}
f = ;
memset(vis, , sizeof(vis));
for(int i = ; i <= n && f; i++) {
if(!vis[i]) {
vis[i] = ;
dfs1(i, i);
}
}
memset(vis, , sizeof(vis));
for(int i = ; i <= n && f; i++) {
if(!vis[i]) {
vis[i] = ;
dfs2(i, i);
}
}
if(f) puts("T");
else puts("N");
}
return ;
} /*
1
4
-P-P
--PQ
P--Q
----
*/

HDU 5961:传递(暴搜)的更多相关文章

  1. HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))

    传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)     Problem ...

  2. HDU 5961 传递 随机化

    传递 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5961 Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若 ...

  3. HDU 5961 传递

    http://acm.hdu.edu.cn/showproblem.php?pid=5961 题意: 思路: 话不多说,直接暴力. #include<iostream> #include& ...

  4. 【图论】HDU 5961 传递

    题目内容 题目链接 我们称一个有向图G是传递的当且仅当对任意三个不同的顶点a,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个竞赛图,当且仅当它是一个有向图 ...

  5. HDU 5961 传递 BFS

    题意:中文题,就是判断一个竞赛图拆成两个图,判断是否都传递 思路:分别BFS判深度即可,用这种方法注意要进行读入优化. /** @Date : 2016-11-18-20.00 * @Author : ...

  6. hdu 5961 传递 (2016ccpc 合肥站 A题)

    传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...

  7. 【HDU 5961 传递】

    Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission ...

  8. hdu 5961 传递(暴力搜索)

    我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个竞赛图,当且仅当它是一个有向图且它的基图是完全 ...

  9. HDU 5961 传递 题解

    题目 我们称一个有向图G是 传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个 竞赛图,当且仅当它是一个有向图且它的 ...

  10. HDU - 5961 传递 想法,bfs

    题意:给你一个有向图,满足去掉方向是完全图,将其拆成PQ两个图(没有公共边),问你两图是否分别满足对于任意3个点a,b,c 若有一条边从a到b且有一条边从b到c ,则同样有一条边从a到c. 题解:观察 ...

随机推荐

  1. HashMap put,get操作

    HashMap中的put方法 public V put(K key, V value) { //当key为null,调用putForNullKey方法,保存null与table第一个位置中,这是Has ...

  2. pscp

    http://www.physics.rutgers.edu/~matilsky/documents/pscp.htm

  3. python set add 导致问题 TypeError: unhashable type: 'list'

    问题复现 >>> a = set() >>> b = set() >>> b.add(1) >>> a.add(b) Trace ...

  4. 用仿ActionScript的语法来编写html5——终篇,LegendForHtml5Programming1.0开源库件

    一,LegendForHtml5Programming1.0库件是什么?它是一个javascript库,它模仿了ActionScript的语法,用于html5的开发,目前实现的功能相对较少,还不能称之 ...

  5. Perl Debug error: SetConsoleMode failed, LastError=|6|

    Windows Strawberry Perl. 解决办法: 1. 设置环境变量 TERM = dumb 2. 重启 CMD 参考资料: http://padre.perlide.org/trac/t ...

  6. Leetcode: Random Pick Index

    Given an array of integers with possible duplicates, randomly output the index of a given target num ...

  7. session 实现保存用户信息

    index.jsp <body> <div style="margin: 0 auto; width: 500px; text-align: center;"&g ...

  8. JQuery权限管理

    <title></title> <script src="JS/jquery-1.7.1.js"></script> <scr ...

  9. 算法训练 Torry的困惑(基本型)

    http://lx.lanqiao.org/problem.page?gpid=T129 算法训练 Torry的困惑(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述 ...

  10. ls -l 列表信息详解

    我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢? ...