1046. Shortest Distance (20)

原创 2015年11月20日 00:06:33

1.建立一个数组dp[i],记录0到i之间的距离和

2.定义sum,记录全程的路程和

3.求i,j的最短距离时,利用ans=dp[j]-[i]+num[i]-num[j],ans2=sum-ans,min(ans,ans2)即为答案


AC代码:

#include <iostream>
#include <stdio.h>
#include <vector>
#include <stack>
#include <algorithm>
#include <memory.h>
#include <map>
#include <set>
#include "limits.h"
using namespace std;

int main(void)
{
    
    int n;
    scanf("%d",&n);
    int *num=new int[n];
    int *dp=new int[n];
    memset(dp, 0, sizeof(dp));
    int sum=0;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&num[i]);
        if(i==0) dp[i]=num[i];
        else dp[i]=dp[i-1]+num[i];
        sum+=num[i];
    }
    int m;
    scanf("%d",&m);
    for(int i=0;i<m;i++)
    {
        int a,b;
        scanf("%d %d",&a,&b);
        if(a>b) swap(a,b);
        int tmp=dp[b-1]-dp[a-1]+num[a-1]-num[b-1];
        int tmp2=sum-tmp;
        printf("%d\n",min(tmp2,tmp));
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

【PAT】1046. Shortest Distance (20)

1046. Shortest Distance (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Stand...
  • tiantangrenjian
  • tiantangrenjian
  • 2013年10月31日 11:37
  • 1903

1046. Shortest Distance (20)【贪心】——PAT (Advanced Level) Practise

题目信息1046. Shortest Distance (20)时间限制100 ms 内存限制65536 kB 代码长度限制16000 BThe task is really simple: gi...
  • xianyun2009
  • xianyun2009
  • 2015年12月06日 21:15
  • 901

1046. Shortest Distance (20)

The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t...
  • zjujqq
  • zjujqq
  • 2013年08月28日 00:01
  • 434

PAT 1046. Shortest Distance (20)

1046. Shortest Distance (20) 浙大PAT The task is really simple: given N exits on a highway which forms...
  • ZJFCLH
  • ZJFCLH
  • 2014年03月17日 16:21
  • 845

pat 1046. Shortest Distance (20)

1046. Shortest Distance (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standa...
  • wyh7280
  • wyh7280
  • 2015年07月19日 10:42
  • 331

1046. Shortest Distance (20)—PAT

1046. Shortest Distance (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 1600...
  • zoushidexing
  • zoushidexing
  • 2013年08月11日 15:26
  • 581

PAT-A 1046. Shortest Distance (20)

PAT甲级 1046 Shortest Distance
  • Daniel960601
  • Daniel960601
  • 2017年02月12日 20:03
  • 227

PAT_A 1046. Shortest Distance (20)

1046. Shortest Distance (20) 城市之间高速依次连成一个圈,给出相邻距离,求给定城市的最短距离。...
  • scylhy
  • scylhy
  • 2017年08月31日 22:13
  • 89

1046. Shortest Distance (20)(动态规划)

1046. Shortest Distance (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 1600...
  • shizheng163
  • shizheng163
  • 2016年02月18日 22:48
  • 119

1046. Shortest Distance

题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1046 // 为了避免重复计算:计算2个点间的距离,需要累加。 // 改为,在对应节点...
  • Staibin
  • Staibin
  • 2014年03月11日 18:16
  • 469
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1046. Shortest Distance (20)
举报原因:
原因补充:

(最多只允许输入30个字)