PAT 1046. Shortest Distance (20)

来源:互联网 发布:python 比较图像相似度 编辑:程序博客网 时间:2024/05/22 14:01

模拟 10^4 * 10^5 会超时,通过设置一个0点,通过计算每个点到0的距离,两点之间的最短距离只需要相减就可以了。
代码如下:

#include<iostream>#include<cstdio>using namespace std;int main(){  int n;  while(cin>>n)  {    int d[100005],dis;    d[0] = 0;    for(int i = 1; i <= n; i++)    {    cin>>dis;    d[i] = d[i-1] + dis;  }    int m;    cin>>m;    while(m--)    {      int a,b;      cin>>a>>b;      if(a>b)      {        int temp = a;        a = b;        b = temp;      }    int min = d[b-1] - d[a-1];    if(min < d[n] - min)      cout<<min<<endl;    else      cout<<d[n] - min<<endl;    }  }  return 0;}
0 0
原创粉丝点击