1046. Shortest Distance (20)
2015-11-20 00:06
344 查看
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代码:
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 ; int *dp=new int ; 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; }
相关文章推荐
- WebKit之网络栈
- 1046. Shortest Distance (20)
- URAL 1354 Palindrome. Again Palindrome (回文 + KMP)
- 初识Linux--Federa
- 前端计划第四天--grunt
- 蓝懿 iOS 技术交流和心得分享 11.19
- android 回调接口学习(自定义Dialog 获取数据数据回调)
- 10018---JavaWeb基础--过滤器(Filter)
- JAVA中怎样把用户输入的字符串存入数组中?
- [ecshop 资料]ECshop彻底去版权(同时适用于2.7.3)
- WebKit之Canvas2D实现
- 什么是 GraphQL?
- 微信支付开发IOS图文教程案例
- 好人还是能人?
- asp.net微信开发(永久素材管理)
- Python实现将xml导入至excel
- Python聚类算法之基本K均值实例详解
- Python聚类算法之凝聚层次聚类实例分析
- Python聚类算法之DBSACN实例分析
- 将Emacs打造成强大的Python代码编辑工具