zoukankan      html  css  js  c++  java
  • PAT甲题题解-1046. Shortest Distance (20)-做了一个假的最短路,水

    一开始以为是最短路,结果是给你一个环,让你求环上两点之间的距离。。。那还做毛线

    然而还是得做毛线

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <string.h>
    #define INF 0x3f3f3f3f
    using namespace std;
    const int maxn=100000+5;
    int clockwise[maxn];
    
    int main()
    {
        int n;
        int dis[maxn];
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&dis[i]);
        }
        memset(clockwise,0,sizeof(clockwise));
        clockwise[1]=0;
        for(int i=2;i<=n;i++){
            clockwise[i]=dis[i-1];
            clockwise[i]+=clockwise[i-1];
        }
        clockwise[n+1]=clockwise[n]+dis[n];
        int m;
        scanf("%d",&m);
        int a,b,u,v;
        int ans;
        for(int i=0;i<m;i++){
            scanf("%d %d",&a,&b);
            u=min(a,b);
            v=max(a,b);
            ans=INF;
            ans=min(ans,clockwise[v]-clockwise[u]); //顺时针的距离
            ans=min(ans,clockwise[n+1]-clockwise[v]+clockwise[u]);//逆时针的距离
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Django学习2
    Django学习1
    python 基于tcp协议的文件传输3_解决粘包问题
    python socketserver
    python hashlib
    python struct模块
    python json 模块
    python socket模块
    13暑假集训#10 总结
    hdu 4493 卡输入输出
  • 原文地址:https://www.cnblogs.com/chenxiwenruo/p/6677045.html
Copyright © 2011-2022 走看看