HDU 5636 Shortest Path(Floyed,枚举)
Shortest Path
Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) 
Total Submission(s): 1146    Accepted Submission(s): 358
Problem Description 
There is a path graph G=(V,E) with n vertices. Vertices are numbered from 1 to n and there is an edge with unit length between i and i+1 (1≤i
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h>
using namespace std;
#define mod 1000000007
typedef long long int  LL;
int dp[10][10];
int n,m;
long long int s;
int main()
{
    int t;
    scanf("%d",&t);
    int a[10];
    int x,y;
    while(t--)
    {
        scanf("%d%d",&n,&m);
        scanf("%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]);
        memset(dp,0,sizeof(dp));
        for(int i=1;i<=6;i++)
        {
            for(int j=1;j<=6;j++)
            {
               dp[i][j]=abs(a[j]-a[i]);
            }
        }
        dp[1][2]=1;dp[3][4]=1;dp[5][6]=1;
        dp[2][1]=1;dp[4][3]=1;dp[6][5]=1;
        for(int k=1;k<=6;k++)
        {
            for(int i=1;i<=6;i++)
            {
                for(int j=1;j<=6;j++)
                {
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
                }
            }
        }
        int res=0;
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&x,&y);
            int ans=abs(y-x);
            for(int i=1;i<=6;i++)
            {
                for(int j=1;j<=6;j++)
                {
                    ans=min(ans,abs(x-a[i])+abs(y-a[j])+dp[i][j]);
                }
            }
//            int num=i*ans%mod;
//            res+=num;
//            res%=mod;
            (res+=(LL)i*ans%mod)%=mod;
        }
        printf("%d\n",res);
    }
    return 0;
}
HDU 5636 Shortest Path(Floyed,枚举)的更多相关文章
- HDU 5636 Shortest Path 暴力
		
Shortest Path 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 Description There is a path graph ...
 - HDU 5636 Shortest Path
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 题解: 1.暴力枚举: #include<cmath> #include<c ...
 - HDU 5636 Shortest Path 分治+搜索剪枝
		
题意:bc round 74 分析(官方题解): 你可以选择分类讨论, 但是估计可能会写漏一些地方. 只要抽出新增边的端点作为关键点, 建立一个新图, 然后跑一遍floyd就好了. 复杂度大概O(6^ ...
 - HDU 5636 Shortest Path(Floyd)
		
题目链接 HDU5636 n个点,其中编号相邻的两个点之间都有一条长度为1的边,然后除此之外还有3条长度为1的边. m个询问,每次询问求两个点之前的最短路. 我们把这三条边的6个点两两算最短路, 然 ...
 - hdu 3631 Shortest Path(Floyd)
		
题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...
 - HDU - 3631 Shortest Path(Floyd最短路)
		
Shortest Path Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u SubmitStat ...
 - HDU - 4725_The Shortest Path in Nya Graph
		
The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
 - hdu 3631 Shortest Path
		
floyd算法好像很奇妙的样子.可以做到每次加入一个点再以这个点为中间点去更新最短路,效率是n*n. #include<cstdio> #include<cstring> #i ...
 - HDU 4479 Shortest path  带限制最短路
		
题意:给定一个图,求从1到N的递增边权的最短路. 解法:类似于bellman-ford思想,将所有的边先按照权值排一个序,然后依次将边加入进去更新,每条边只更新一次,为了保证得到的路径是边权递增的,每 ...
 
随机推荐
- Go 语言机制之逃逸分析
			
https://blog.csdn.net/weixin_38975685/article/details/79788254 Go 语言机制之逃逸分析 https://blog.csdn.net/ ...
 - java okhttp包的类特点
			
1.开始使用这个包时候不习惯,觉得api用起来很别扭,不管是Request okhttpClient formBody只要是设置啥,就必须使用类里面的Builder类,然后一个方法接受一个参数,不停地 ...
 - Java位运算加密
			
创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的 ...
 - php mongodb manager 查数据的各种姿势
			
一.连接 mongodb 数据库 以下操作默认都是以上面操作为前提(已连接成功)而做的操作 二.查的各种姿势 1)通过主键_id来查询,注意:_id不是直接用字符串来表示,要用 new \MongoD ...
 - PyCharm 基础设置
			
设置主题:File -- Settings -- Editor -- Color & Fonts -- Font -- Scheme 设置为 Darcula 设置字体:File -- Sett ...
 - Ubuntu输入法切换问题
			
不知道改了个什么东西,Ubuntu 15.04 中Ctrl+Space不能切换输入法了,因此不能输入英文,shell就更是没法工作,在设置里面找了好久,“文本输入”/“语言支持”/“键盘”里面都没找到 ...
 - Git和GitHub入门基础
			
-----------------------------------------//cd F:/learngit // 创建仓库git init // 在当前目录下创建空的git仓库------- ...
 - eclipse闪退解决
			
log: !SESSION 2014-03-12 14:02:45.207 -----------------------------------------------eclipse.buildId ...
 - 【转载】如何从win8/8.1中文版(核心版)升级到win8/8.1专业版
			
最近帮助很多同学从win8/8.1的基础版本 - 中文版(核心版)升级到了专业版,经过咨询,升级系统的最主要原因是中文版(核心版)的功能限制,因为基础版本阉割掉了很多常用的功能,比如组策略,计算机管理 ...
 - 【MATLAB】评价二值分割结果的函数
			
根据PASCAL challenges的标准:intersection-over-union score,所写的matlab评价程序,处理二值图像. 其思想即分割结果与Ground Trueth的交集 ...