본문 바로가기

전체 글265

백준(BOJ) 11779 최소비용 구하기 2 ** 본인은 다익스트라 알고리즘을 이용해서 풀었다. 1. 현재 노드에서 갈수 있는곳 중 가장 적은 비용인 노드를 선택한다. 2. 노드로 이동 후, 노드에 가는 비용을 업데이트한다. 가장 기본적인 방식으로 푼것 같다. ** : 가장 기본적인 다익스트라 방식이고, 최소비용 뿐 아니라 경로를 저장하는 부분이 추가되었다. #include #include #include #include #include #define MAX 100000001 #pragma warning(disable:4996) using namespace std; int city_n,bus_n,bus[1005][1005],city[2][1005],a,b,c; vector v[1005],current; int getMin(void) { int mi=-1.. 2018. 6. 1.
백준(BOJ) 1261 알고스팟 2 ** 다익스트라 알고리즘을 이용하여 풀었다. 1. 현재 노드에서 갈수 있는곳 중 가장 적은 비용인 노드를 선택한다. 2. 노드로 이동 후, 노드에 가는 비용을 업데이트한다. 배운점 * 128MB이면 배열의 크기는 대략 5000*5000을 넘으면 안된다. * 반례가 모두 성립되었는데도 해결이 되지 않았다면 간단한 실수를 조심하자. #include #include #include #include #include #define MAX 10005 #pragma warning(disable:4996) using namespace std; int ori[105][105], node_n,node[2][20005], x,y; int dy[4] = { 0,-1,0,1 }, dx[4] = { -1,0,1,0 }; char ch.. 2018. 6. 1.
백준(BOJ) 1766 문제집 ** 위상정렬의 개념을 알고 문제에 접근하는 방법이 좋다고 생각됩니다~ 간단하게 위상정렬을 설명하면 트리의 방향이 무조건 정해져있다고 생각하시면 됩니다. (게임으로 설명을하면 빌드 또는 테크라 생각하시쉬면 쉽습니다.) (A건물을 지어야만 B건물을 지을 수 있다! or A아이템의 상위템이 B아이템이다.) 만약, 문제의 조건중에 순환할 수 있다는 말이 있다면 위상정렬로 풀 수 없습니다. (순환한다는 말은 A건물의 상위건물이 B이고, B건물의 상위건물이 A라면 말이 모순이 있겠죠?) #include #include #include #include #include #include #include #include #define MAX 40005 #define MOD 1000000007 #pragma warning(di.. 2018. 6. 1.
백준(BOJ) 2623 음악프로그램 *** # 위상정렬 Indegree를 이용한 위상정렬을 이용하여 구현하였다. #include #include #include #include #include #include #include #include #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n, m,a,b,c,node[32005]; vector vert[32005],ans; priority_queue pq; // 우선순위 큐를 사용하는 대신 그냥 큐를 사용해도된다. // 우선순위 큐를 사용하면 향하는 간선이 없는 노드들 중에 가장 작은 노드를 먼저 출력. int main() { fill_n(&node[0], 32005, 0);.. 2018. 6. 1.