hdu 4034 - Graph
来源:互联网 发布:php能做幻灯片吗 编辑:程序博客网 时间:2024/05/21 20:29
题目:给你最短路的集合,判断图最要有多少边。
分析:最短路。这道题目应该是最水的了,只要利用floyd判断成立和更新就解决了;
比赛开始了好久才去敲了这道题,导致累计时间,幸好最后以题数晋级。
说明:(2011-09-19 00:43)。
#include <stdio.h>#include <stdlib.h>#include <string.h>int maps[ 105 ][ 105 ];bool smap[ 105 ][ 105 ];int main(){ int T,N; scanf("%d",&T); for ( int t = 1 ; t <= T ; ++ t ) { scanf("%d",&N); for ( int i = 1 ; i <= N ; ++ i ) for ( int j = 1 ; j <= N ; ++ j ) scanf("%d",&maps[ i ][ j ]); bool flag = true; for ( int k = 1 ; k <= N && flag ; ++ k ) for ( int i = 1 ; i <= N && flag ; ++ i ) for ( int j = 1 ; j <= N && flag ; ++ j ) if ( maps[ i ][ j ] > maps[ i ][ k ] + maps[ k ][ j ] ) flag = false; if ( !flag ) { printf("Case %d: impossible\n",t); continue; } memset( smap, false, sizeof( smap ) ); for ( int k = 1 ; k <= N ; ++ k ) for ( int i = 1 ; i <= N ; ++ i ) for ( int j = 1 ; j <= N ; ++ j ) { if ( i == k || j == k ) continue; if ( maps[ i ][ j ] == maps[ i ][ k ] + maps[ k ][ j ] ) smap[ i ][ j ] = true; } int count = 0; for ( int i = 1 ; i <= N ; ++ i ) for ( int j = 1 ; j <= N ; ++ j ) if ( i != j && maps[ i ][ j ] && !smap[ i ][ j ] ) ++ count; printf("Case %d: %d\n",t,count); } //system("pause"); return 0;}
0 0
- HDU 4034 Graph
- hdu 4034 floyd Graph
- hdu 4034 Graph (floyd)
- hdu 4034 graph
- HDU 4034(Graph)
- hdu 4034 - Graph
- hdu 4034 Graph Floyd
- HDU 4034 Graph
- HDU 4034 Graph
- HDU-4034-Graph
- HDU 4034 Graph
- hdu 4034 Graph(floyd)
- HDU 4034 Graph(Floyd变形)
- hdu 4034 Graph(floyd)
- hdu 4034 Graph解题报告-Floyd思想
- hdu 4034 Graph(逆向floyd)
- hdu 4034 Graph 最短路Floyed
- HDU - 4034 Graph (floyd变形)
- Git在linux下的使用
- eclipse adb启动不了 报The connection to adb is down, and a severe error has occured.
- HDU_ACM-2016-数据的交换输出
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0
- 黑马程序员————JAVA之类加载器
- hdu 4034 - Graph
- 使用pgAdmin将shp导入PostGIS及其典型错误处理
- 什么是ActiveRecord
- 花生壳ping不通深入分析及解决方法
- 《SAS编程与数据挖掘商业案例》学习笔记之三
- Reverse Integer
- C#调用C++ 平台调用P/Invoke 结构体--结构体嵌套【八】
- TCP三次握手/四次挥手
- [转载]cookie 和session 的区别详解 - 施杨