ZZUOJ 1199: 大小关系
来源:互联网 发布:眼镜店 知乎 编辑:程序博客网 时间:2024/05/22 03:51
题目描述
当我们知道一组大小关系之后,可判断所有关系是否都能成立,即关系间没有矛盾。例如:A<B, A<C, B<C 通过这组关系我们可以得到A<B<C ,所有关系都成立,没有矛盾。
若 A<B, B<C, C<A 通过前两个关系我们得到 A<B<C ,这个关系与C<A矛盾,所有关系不能同时成立。
现在我们知道m个关系,请判断这m个关系是否能成立,成立输出“YES”,否则输出“NO”。
输入
多组数据,每组数据如下:
第一行有一个数字m。 m代表m组关系(1<=m<=400),接下来m行每行有一个关系,用两个不同的字母和一个符号表示。(输入保证字母在‘A’-‘Z’之间,关系符号只有 > , <)
输出
对于每组数据输出“YES”或“NO”.
样例输入
3
A<B
A<C
B<C
3
A<B
B<C
C<A
样例输出
YES
NOZZUOJ 1199题链接
这道题比赛的时候开始就有了思路,不过整整做了一个半小时才做完, 中间各种出错吧,一直在调试,这道题的思路是用一个邻接表和深搜解决!
具体怎么做代码中会有注释 光说太罗嗦
#include<stdio.h>#include<stdlib.h>struct temp{char k;struct temp *next;};//这是邻接表的存储结构,邻接表后面只存正确且比自己大的字母 struct cmp{struct temp *s;}b[100];//这是邻接表的头 ,在这有一个技巧就是A~Z的ascii值是从65~90的这样b[65]~b[90]直接代表了//b[A]~b[Z] struct temp * f()//这个函数是申请空间 {struct temp *p;return p = (struct temp *)malloc(sizeof(struct temp));}int DFS(struct temp *w, char z)//这个是深搜函数,深搜的思路是把传入的两个字母较大的那个字母开始搜索//如果在深搜过程中找到了较小的值 则返回值为零 找不到返回一 {while(w != NULL){ if( w -> k == z )return 0;else if(DFS(b[w -> k].s, z) == 0)return 0;w = w -> next;}return 1;}int main(){int n, i, k, ok;struct temp *p, *q;char x, y, ch, a[5];while(scanf("%d", &n) != EOF){for(i = 60; i < 100; i++)b[i].s = NULL;ok = 1;for(i = 0; i < n; i++){scanf("%s", a);if(0 == ok)//如果中间出现错误下面就不用判断了直接停止就可以了 continue;//我得思路这一句一定得加,否则提交会超时,比赛时加了这句直接过了 //不过刚刚提交时少了这句超时,因为是递归 已经错了 还继续往下的话会把时间延长很多 x = a[0]; y = a[2]; ch = a[1];if(ch == '<'){if(DFS(b[y].s, x)){p = f();p -> k = y;q = b[x].s;b[x].s = p;p -> next = q;}else{ok = 0;}}else if( ch == '>' ){if( DFS(b[x].s, y) ){p = f();p -> k = x;q = b[y].s;b[y].s = p;p -> next = q;}else {ok = 0;}}}if(1 == ok)printf("YES\n");else if(0 == ok)printf("NO\n");}return 0;}
0 0
- ZZUOJ 1199: 大小关系
- ZZUOJ - 1199 - 大小关系 (拓扑排序!)
- 大小关系
- zzuoj 10408
- zzuoj 10409
- 字号大小对应关系
- 对话框大小与像素关系
- 对话框大小与像素关系
- 对话框大小与像素关系
- zzuoj 猜素数
- ZZUOJ - 1081 - 三进制小数
- ZZUOJ-10433: sort
- ZZUOJ-10436: easy problem
- ZZUOJ-10434: good string
- ZZUOJ-10452 "分"数
- zzuoj-10453: 补题栈
- zzuoj 10400 floyd变形
- 卷积网络 步长&填充 大小 与输入输出大小的关系
- 解压
- TCP/IP详解--接收RST回应的几种情况
- POJ 2955 Brackets(区间DP, 记忆化搜索)
- Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器
- CSS之Position详解
- ZZUOJ 1199: 大小关系
- Tomcat服务器集群与负载均衡实现
- 一步步学习微软InfoPath2010和SP2010--第十三章节--SharePoint视图和仪表板(3)--等级
- VC单文档实现多视图的方法
- Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图
- 重载构造函数(讲解)
- SQL_Server_2005_的准备工作和事务复制配置图解
- OWB 11gR2 – Metadata change management
- 照手机大潮正在涌来,向来