hdu 4034
比赛时才发现自己基础算法都忘得光光了,逆向floyd
i->j经过k点,只要i到j的距离大于或者等于,就把这边标记,实为去掉。。。此时整个图就减一条边
#include<iostream>
#include<cstdio>
#include<limits.h>
#include<memory.h>
using namespace std;
#define INF INT_MAX
#define maxn 110
int n;
int d[maxn][maxn],m[maxn][maxn];
int vis[maxn][maxn];
void init()
{
memset(d,INF,sizeof(d));
memset(vis,,sizeof(vis));
}
void input()
{
for(int i = ; i < n; i++)
for(int j = ; j < n; j++)
{
scanf("%d",&d[i][j]);m[i][j] = d[i][j];
} }
int floyd()//逆向floyd
{
int cnt = ;
for(int k = ; k < n; k++)
for(int i = ; i < n; i++)
for(int j = ; j < n; j++)
if(i != k && k != j && d[i][j] >= d[i][k] + d[k][j])
{
vis[i][j] = ;
d[i][j] = d[i][k] + d[k][j];
if(d[i][j] < m[i][j])return -;
}
for(int i = ; i < n; i++)
for(int j = ; j < n; j++)
if(vis[i][j]) cnt++;
return n * n - n - cnt;
}
int main()
{
int T;
scanf("%d",&T);
int cas = ;
while(T--)
{
scanf("%d",&n);
init();
input();
printf("Case %d: ",cas++);
int t = floyd();
if(t == -) puts("impossible");
else cout<<t<<endl;
}
}
hdu 4034的更多相关文章
- hdu 4034 Graph
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4034 题目分类:图论 题意:n个顶点,然后给出从i到j的最短路径长度,求至少需要哪些边 第二组样例 第 ...
- HDU 4034 Graph(Floyd变形——逆向判断)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4034 Problem Description Everyone knows how to calcu ...
- HDU 4034 Graph Floyd最短路
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4034 题意: 给你一个最短路的表,让你还原整个图,并使得边最少 题解: 这样想..这个表示通过floy ...
- HDU 4034 Graph:反向floyd
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4034 题意: 有一个有向图,n个节点.给出两两节点之间的最短路长度,问你原图至少有多少条边. 如果无解 ...
- hdu 4034 2011成都赛区网络赛 逆向floyd **
给出一个最短路邻接矩阵,求出构图的最小边数 正常的floyd的k放在最外面是为了防止i到j的距离被提前确定,而逆向的floyd,i到j的距离已经确定,所以需要在i到j之间枚举k,注意需要break,否 ...
- hdu 4034 Graph (floyd的深入理解)
Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submi ...
- HDU 4034 Graph(floyd,最短路,简单)
题目 一道简单的倒着的floyd. 具体可看代码,代码可简化,你有兴趣可以简化一下,就是把那个Dijsktra所实现的功能放到倒着的floyd里面去. #include<stdio.h> ...
- hdu 4034 Graph floyd
题目链接 给出一个有向图各个点之间的最短距离, 求出这个有向图最少有几条边, 如果无法构成图, 输出impossible. folyd跑一遍, 如果dp[i][j] == dp[i][k]+dp[k] ...
- hdu 4034 Graph(逆向floyd)
floyd的松弛部分是 g[i][j] = min(g[i][j], g[i][k] + g[k][j]);也就是说,g[i][j] <= g[i][k] + g[k][j] (存在i-> ...
随机推荐
- MYSQL性能优化(3)
优化数据库对象 1.优化表的数据类型 select * from tbl1 procedure analyse(16,256) ,会输出优化建议,结合情况优化 2.拆分表(仅Myisam) 2.1 纵 ...
- jquery 中后代遍历之children、find区别
jquery 中children.find区别 首先看一段HTML代码,如下: <table id="tb"> <tr> <td>0</t ...
- django AnonymousUser
AnonymousUser对象class models.AnonymousUser django.contrib.auth.models.AnonymousUser是一个实现django.contri ...
- FTRL的理解
https://blog.csdn.net/ningyanggege/article/details/81133785
- 数据库-1055报错-把only_full_group_by去掉
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...
- java编译时出现——注:使用了未经检查或不安全的操作。注:有关详细信息,请使用 -Xlint:unchecked 重新编译
网上说是泛型问题 private List<Product> products = new ArrayList<Product>(); 这种用法绝对没错!(因为是照着书写的)在 ...
- Django formset
一 什么是formset Form组件或ModelForm用于做一个表单验证而formset是用于做多个表单的验证组件,用于做批量操作 二 formset的使用方法 1 设置form信息 class ...
- ipv6 docker
DOCKER, IPV6 BASIC CONFIGURATION OF DOCKER ENGINE WITH IPV6 SEPTEMBER 21, 2015 EYEPV6(AT)GMAIL(DOT)C ...
- 防火墙/IDS测试工具Ftester
防火墙/IDS测试工具Ftester FTester 全称Firewall Tester,是一个用来测试防火墙的过滤策略和入侵检测(IDS)能力的工具.这个工具主要是有两个perl的脚本组成: 1. ...
- windows平台下的oracle ORA-01031的解决方法
今天下午遇到一个很怪异的问题,在windows平台下sqlplus / as sysdba登陆数据库,提示权限不足, 当时就纳闷了,sys用户登陆数据库还能权限不足,问题出现了,就开始寻找解决方法呗 ...