cnt+=list.size();
if (cnt<best) best=cnt;
}
cout << best << endl;
}
return 0;
}
비슷한 방법으로 정렬해서, 한번씩 모두 돌면서 최대한 덥을수 있는것으로 카운터를 셉니다.
이해가 안가는 것은 코드의 마지막 부분에서 cnt+=list.size(); 왜 list의 사이즈를 더해주는건가요? 1을 더해줘야 하는 거 아닌가요? 루프를 다돌고 list에 남아 있다는 것은 최초에 여기에 해당하는 것의 끝 각이 있다는 것은데, 그러면 최초의 점에 지하철을 놓으면 리스트에 있는 모든 좌표는 d안에 있게 되는거 아닌가요?
@,.@
문제입니다.
http://www.ida.liu.se/projects/progcontest/progsm/2003/problems/subway.pdf
정답 코드
http://www.ida.liu.se/projects/progcontest/progsm/2003/problems/subway.cpp
문제의 내용은 다음과 비슷합니다.
여기는 지하철을 원점을 중심으로 직선으로만 놓을수 있고, 주어진 흥미로운 곳(2차원 좌표) 지하철과 거리가 d만큼 되어야 합니다. 그래서 지어야 하는 지하철의 최소의 개수를 구하는 것인데요.
흥미롱운 곳에서 지하철이 놓일수 있는 각을 계산해서 저장하는 방법으로 풀었네요
제가 푼건아니고요. 보다가 이해가 안가서 정답 코드를 분석했는데 이상한 점이 있어서요.
문제 내용은 예전에 아스탱님이 올리신 문제 A. Magic Sticks Again과 비슷합니다.
http://algospot.com/zbxe/news/1254
비슷한 방법으로 정렬해서, 한번씩 모두 돌면서 최대한 덥을수 있는것으로 카운터를 셉니다.
이해가 안가는 것은 코드의 마지막 부분에서 cnt+=list.size(); 왜 list의 사이즈를 더해주는건가요? 1을 더해줘야 하는 거 아닌가요? 루프를 다돌고 list에 남아 있다는 것은 최초에 여기에 해당하는 것의 끝 각이 있다는 것은데, 그러면 최초의 점에 지하철을 놓으면 리스트에 있는 모든 좌표는 d안에 있게 되는거 아닌가요?
17년 전