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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

1046. Shortest Distance (20)

2019-11-14 09:41:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

2. 思路:

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

3. 源碼(已AC):

#include<iostream>#include<algorithm>//使用min,max函數(shù)#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);//保存兩點(diǎn)間的距離	vector<int> acc(N + 1, 0);//保存起點(diǎn)到當(dāng)前點(diǎn)的距離	for (int i = 1; i <= N; i++)	{		acc[i] = total;		scanf("%d", &ev[i]);		total += ev[i];	}	int M, sta, end;//分別為所求問(wèn)題個(gè)數(shù), 起始點(diǎn),末點(diǎn)。	int lnum, gnum;//分別表示兩點(diǎn)較小的和較大的序號(hào)	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;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉木乃县| 咸阳市| 鸡泽县| 甘谷县| 丹江口市| 鄂托克前旗| 桃源县| 常宁市| 衡南县| 交口县| 喜德县| 徐闻县| 兴化市| 博客| 钟山县| 建平县| 莱州市| 安康市| 石城县| 铁力市| 凤山县| 万宁市| 金川县| 泌阳县| 永川市| 将乐县| 宜兴市| 永泰县| 西乌珠穆沁旗| 尚义县| 屯门区| 正宁县| 遵义县| 瓮安县| 老河口市| 建湖县| 深圳市| 旬邑县| 栾城县| 平和县| 天门市|