SDUT 3809 离散题目15
来源:互联网 发布:微商加人软件 编辑:程序博客网 时间:2024/06/05 04:02
Problem Description
给出集合X、X上的关系R,判断关系R是不是传递的。
例如: A={1,2,3} , R={<1,1>,<1,2>,<2,1>,<3,3>,<2,3>,<3,2>, <2,2>,<1,3>,<3,1>} 显然,R具有传递性。
Input
多组输入,每组输入第一行为集合X的元素;第二行为一个整数n ( n > 0 ),代表X上的关系R中序偶的个数;接下来n行用来描述X上的关系R,每行两个数字,表示关系R中的一个序偶。细节参考示例输入。
非空集合X的元素个数不大于500,每个元素的绝对值不大于2^32 - 1。
Output
每组输入对应一行输出,如果关系R具有传递性输出 ”true”,否则输出 ”yes”。
Example Input
1 2 3
9
1 1
2 2
3 3
1 2
2 1
1 3
3 1
2 3
3 2
1 2 3
6
1 1
1 2
3 3
2 3
3 2
2 2
Example Output
true
yes
代码:判断是否传递
#include<bits/stdc++.h>using namespace std;struct node{ int u, v;};string s;node a[10000];int main(){ int n, i, j, k; while(getline(cin, s)) { scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%d %d", &a[i].u, &a[i].v); } for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(a[i].v == a[j].u)//第一个的后面等于第二个的前面,代表n组数据中肯定有第一个的前面到第二个的后面的序偶,才能满足传递 for(k = 0; k < n; k++) { if(a[i].u == a[k].u && a[j].v == a[k].v) break;//是传递 } if(k == n) break;//不是传递 } if(j != n) break; } if(i != n) printf("yes\n"); else printf("true\n"); getline(cin, s); } return 0;}
阅读全文
0 0
- SDUT 3809 离散题目15
- sdut-离散题目15
- sdut离散题目11
- sdut离散题目13
- sdut离散题目14
- SDUT-离散题目13
- SDUT-离散题目7
- SDUT离散题目4
- sdut-离散题目3
- sdut- 离散题目4
- sdut-离散题目5
- sdut-离散题目6
- sdut-离散题目7
- sdut-离散题目8
- sdut-离散题目9
- sdut-离散题目10
- sdut-离散题目11
- sdut-离散题目12
- snv服务器备份方案
- 两个时间相比,只精确到天以上,忽略时分秒
- 个人推荐的Python 书籍
- hihocoder 1055 刷油漆 (树型dp)
- 深度学习简述
- SDUT 3809 离散题目15
- SQLite学习手册(实例代码<二>)
- 高流量站点NGINX与PHP-fpm配置优化
- cmd 导入 *.dmp库文件
- iOS开发
- 用正则表达式获取字符串里的URL和文本
- [noip 2013]火柴排队(树状数组/线段树 求逆序对)
- Java基础知识——类的深层结构
- Java使用POI导出Excel