HDU 5961:传递(暴搜)
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:传递(暴搜)的更多相关文章
- HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))
传递 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem ...
- HDU 5961 传递 随机化
传递 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5961 Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若 ...
- HDU 5961 传递
http://acm.hdu.edu.cn/showproblem.php?pid=5961 题意: 思路: 话不多说,直接暴力. #include<iostream> #include& ...
- 【图论】HDU 5961 传递
题目内容 题目链接 我们称一个有向图G是传递的当且仅当对任意三个不同的顶点a,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个竞赛图,当且仅当它是一个有向图 ...
- HDU 5961 传递 BFS
题意:中文题,就是判断一个竞赛图拆成两个图,判断是否都传递 思路:分别BFS判深度即可,用这种方法注意要进行读入优化. /** @Date : 2016-11-18-20.00 * @Author : ...
- hdu 5961 传递 (2016ccpc 合肥站 A题)
传递 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...
- 【HDU 5961 传递】
Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission ...
- hdu 5961 传递(暴力搜索)
我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个竞赛图,当且仅当它是一个有向图且它的基图是完全 ...
- HDU 5961 传递 题解
题目 我们称一个有向图G是 传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个 竞赛图,当且仅当它是一个有向图且它的 ...
- HDU - 5961 传递 想法,bfs
题意:给你一个有向图,满足去掉方向是完全图,将其拆成PQ两个图(没有公共边),问你两图是否分别满足对于任意3个点a,b,c 若有一条边从a到b且有一条边从b到c ,则同样有一条边从a到c. 题解:观察 ...
随机推荐
- javascript设计模式学习之十五——装饰者模式
一.装饰者模式定义 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.这种为对象动态添加职责的方式就称为装饰者模式.装饰者对象和它所装饰的对象拥有一致的接口,对于用 ...
- iOS添加自动更新的代码
- (void)versionUpdate{ //获得当前发布的版本 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_ ...
- iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求.之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦 ...
- weka数据预处理
Weka数据预处理(一) 对于数据挖掘而言,我们往往仅关注实质性的挖掘算法,如分类.聚类.关联规则等,而忽视待挖掘数据的质量,但是高质量的数据才能产生高质量的挖掘结果,否则只有"Garbag ...
- tomcat deploy部署项目三种方法
1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...
- ios app 解决微信扫二维码不能跳转问题
<script> (function(){ // Setup GA (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i ...
- SQL 2012 连接失败
- VS2012离线安装Xamarin (含破解补丁)
Xamarin离线安装包 来源于 忘忧草 特此感谢! 离线安装不成功:参考源 http://www.cnblogs.com/zjoch/p/3937014.html / http://www.cnb ...
- new XMLHttpRequest()和页面关系
1. 三个页面分别对应"自己“的异步对象(3个) <title></title> <script type="text/javascript&quo ...
- demo16Toast
/Users/alamps/AndroidStudioProjects/demo16Toast/demo16Toast/src/main/res/layout/activity_main.xml &l ...