ZOJ 1589 Professor John (图的传递闭包)
2010-08-06 17:42
369 查看
给出几个变量的相互大小关系,要求输出能推出来的关系。
显然大小关系只有一种,大于或者小于,所以是都是单向的。计算完闭包之后与原来的比较,多出来的就是推出来的关系。
这题竟然一次就编译成功而且一次AC。。。哈哈,庆祝。。
显然大小关系只有一种,大于或者小于,所以是都是单向的。计算完闭包之后与原来的比较,多出来的就是推出来的关系。
这题竟然一次就编译成功而且一次AC。。。哈哈,庆祝。。
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { int mat1[27][27],mat2[27][27]; int cases,relation; char a[5]; int i,j,k,r; int flag; int from,to; scanf("%d",&cases); for( i = 1; i <= cases; i++ ) { memset(mat1,0,sizeof(mat1)); memset(mat2,0,sizeof(mat2)); scanf("%d",&relation); while( relation-- ) { scanf("%s",a); from = a[0] - 'A' + 1; to = a[2] - 'A' + 1; if( a[1] == '<' ) mat1[from][to]=mat2[from][to]=1; else mat1[to][from]=mat2[to][from]=1; } for( k = 1; k <= 26; k++ ) for( j = 1; j <= 26; j++ ) for( r = 1; r <= 26; r++ ) if( mat2[j][k] && mat2[k][r] ) mat2[j][r] = 1; printf("Case %d:/n",i); for( k = 1,flag = 0; k <= 26; k++ ) for( j = 1; j <= 26; j++ ) if( mat1[k][j] == 0 && mat2[k][j]) { flag = 1; printf("%c<%c/n",k+'A'-1,j+'A'-1); } if(!flag) printf("NONE/n"); } return 0; }
相关文章推荐
- ZOJ 1589 Professor John(传递闭包)
- zoj 1589 Professor John
- zoj 1589 Professor John(Dijkstra~)
- ZOJ 1589 Professor John
- ZOJ-1589 Professor John
- ZJU 1589 Professor John
- ZOJ-1589
- zoj 1589 Professor John 尚有点小疑问
- ZOJ 1589 Professor John【暴力解决】【待改进】
- TOJ 2933 ZOJ 1589 Professor John / floyd
- zoj 1589 传递闭包
- zoj 1589
- zoj1022 Parallel Expectations(DP)
- ZOJ 3538 Arrange the Schedule 矩阵快速幂
- ZOJ 1586 : QS Network - prim算法解决最小生成树问题
- ZOJ 3203 Light Bulb--三分
- zoj 3471 Most Powerful //状态压缩DP
- zoj 2013 Changsha Regional Online Contest C E G H J 题
- ZOJ 3822 Domination (概率DP)
- zoj 2314 Reactor Cooling (无源汇有上下界的可行流)