HDU 2083 간이 판 의 최 단 거리
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15057 Accepted Submission(s): 6648
Problem Description
겨울방학 에 ACBOY 는 많은 친 구 를 찾 아 가 려 고 하 는데 공교롭게도 그의 모든 친구 의 집 은 좌표 평면 X 축 에 있다.ACBOY 는 친구 의 집 을 선택 하여 방문 을 시작 할 수 있 지만 방문 할 때마다 출발점 으로 돌아 가 야 다음 친 구 를 방문 할 수 있 습 니 다.
예 를 들 어 네 명의 친구 가 있 는데 해당 하 는 X 축 좌 표 는 각각 1, 2, 3, 4 이다.ACBOY 가 좌표 가 2 인 점 을 출발점 으로 선택 할 때, 그 가 최종 적 으로 필요 로 하 는 시간 은 | 1 - 2 | + | 2 - 2 | + | 3 - 2 | + | 4 - 2 | = 4 이다.
지금 N 명의 친구 의 좌 표를 드 립 니 다. 그러면 ACBOY 는 어떻게 가 야 시간 이 가장 적 게 걸 릴 까요?
Input
입력 은 먼저 정수 M 으로 M 개의 테스트 인 스 턴 스 를 표시 합 니 다.모든 인 스 턴 스 의 입력 은 2 줄 이 있 습 니 다. 먼저 정수 N (N < = 500) 입 니 다. N 명의 친구 가 있 음 을 나타 내 고 다음 줄 은 N 개의 정수 이 며 구체 적 인 좌표 (모든 데이터 가 < = 10000) 를 나타 냅 니 다.
Output
모든 테스트 인 스 턴 스 에 대해 모든 친구 에 게 접근 하 는 데 걸 리 는 최소 시간 을 출력 하 십시오. 모든 인 스 턴 스 의 출력 은 한 줄 을 차지 합 니 다.
Sample Input
2 2 2 4 3 2 4 6
Sample Output
2 4
中文题目,很容易看懂的;直接暴力就可以求出来了;
我们可以把起点设置在每个位置,然后走一遍,将其需要花费的时间加起来,然后保存到一个数组中,最后对该数组进行一个升序排序,数组的第一个位置肯定就是其花费最少时间的情况了;
需要注意的是,我们这里用到了绝对值函数 abs();该函数在头文件 #include中;其实不知道的也可以直接自己写一个绝对值函数;
直接给出AC代码:
#include
#include
#include
#include
using namespace std;
int main()
{
int m, n;
int friends[505], mini[505];
cin >> m;
while (m--)
{
cin >> n;
memset(mini, 0, sizeof(mini));
for (int i = 0; i < n; i++)
cin >> friends[i];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
mini[i] += abs(friends[j] - friends[i]);
}
}
sort(mini, mini + n);
cout << mini[0] << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebGL2에서 GPGPU 바이트 닉 정렬이전 기사에서 JavaScript로 바이트 닉 정렬을 구현해 보았습니다. 알고리즘을 이해할 수 있었으므로, 바이트 닉 소트의 본령이 발휘할 수 있는 WebGL로 GPGPU 바이트 닉 소트를 구현해 보았습니다. Web...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.