国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

1046. Shortest Distance (20)

2019-11-14 10:08:54
字體:
來源:轉載
供稿:網友

1. 原題: https://www.patest.cn/contests/pat-a-PRactise/1046

2. 思路:

題意:在一個環路中,求兩點間的最小距離。基本邏輯題。思路:常規思路是求出總長total,然后累計兩點間的正向距離sum。反向距離是total-sum,輸出兩者的最小值。然而數組規模很大,最后一個測試點超時。改進的思路參考自:http://blog.csdn.net/xyt8023y/article/details/46924653即:另開一個數組,在求total時,保存從起點1到當前點的距離。這樣就少了一層循環。

3. 源碼(已AC):

#include<iostream>#include<algorithm>//使用min,max函數#include<vector>using namespace std;int main(void){	//freopen("in.txt", "r", stdin);	int N, total = 0;	scanf("%d", &N);	vector<int> ev(N + 1, 0);//保存兩點間的距離	vector<int> acc(N + 1, 0);//保存起點到當前點的距離	for (int i = 1; i <= N; i++)	{		acc[i] = total;		scanf("%d", &ev[i]);		total += ev[i];	}	int M, sta, end;//分別為所求問題個數, 起始點,末點。	int lnum, gnum;//分別表示兩點較小的和較大的序號	scanf("%d", &M);	for (int i = 0; i < M; i++)	{		scanf("%d %d", &sta, &end);		lnum = min(sta, end);		gnum = max(sta, end);		int sum = acc[gnum] - acc[lnum];		int min_dist = sum > (total / 2) ? (total-sum) : sum;		printf("%d/n", min_dist);	}	return 0;}
上一篇:枚舉

下一篇:MD5加密

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普洱| 赞皇县| 大兴区| 绥中县| 辛集市| 读书| 茂名市| 改则县| 根河市| 涟源市| 陕西省| 临沂市| 疏附县| 台南市| 曲松县| 麟游县| 渝中区| 琼中| 正安县| 南阳市| 云林县| 广州市| 灵山县| 阳城县| 鹤山市| 沅江市| 拉萨市| 宣化县| 铜山县| 泌阳县| 正镶白旗| 孝昌县| 娄底市| 潍坊市| 建瓯市| 印江| 乃东县| 泸定县| 报价| 大同县| 宣威市|