쾌락없는 책임 (공부)/알고리즘 문제풀이
-
백준 10282 해킹 - C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 6. 6. 19:39
10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net #include #include #include #include #include #define MAX 999999999 using namespace std; int t; //테스트케이스 수 int n, d, c; // 컴퓨터 수, 의존성 수(경로수), 해킹당한 컴퓨터 int a, b, s; // a,b 컴퓨터, s 시간 int cur, time, nextCur, nextTime; int comCount, infectTime; int com[10001]; priorit..
-
백준 5719 거의 최단 경로 - C++, 다익스트라, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 6. 5. 15:49
5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있 www.acmicpc.net #include #include #include #include #define MAX 501 using namespace std; int n, m, start, finish; int inputFrom, inputTo, inputCost; int city[MAX]; bool isFast[MAX][MAX]; bool visit[MAX]; void Djik(vector road[]){ for(int i = 0; i curCost + ne..
-
-
백준 1916 최소비용 구하기 - C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 6. 1. 21:34
1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net #include #include #include #include using namespace std; int n, m, start, finish; int inputTo, inputFrom, inputCost; vector bus[1001]; int toIndexCityCost[1001]; void Djik(){ priority_queue djikQ; djikQ.push(make_pair(0, start)); toIndexCity..
-
백준 11779 최소비용 구하기 2 - C++, 다익스트라 경로추적쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 6. 1. 14:30
11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net #include #include #include #include using namespace std; int n, m, start, finish; int inputFrom, inputTo, inputCost; vector road[1001]; int city[1001]; int route[1001]; int main(){ // 입력 cin >> n >> m; for(int i = 1; i > inputFrom >> inputTo >..
-
백준 15723 n단 논법 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 30. 18:01
15723번: n단 논법 m개의 줄에 걸쳐 각 줄에 결론이 참인지 거짓인지 출력하라. 참일 경우 T, 거짓일 경우 F를 출력하라. 알 수 없는 경우도 거짓이다. 답은 필히 대문자로 출력해야 한다. www.acmicpc.net #include #include #include using namespace std; int n, m; char inputFrom, inputTo; bool alphabet[27][27]; string isTemp; void Floyd(){ for(int via = 1; via > inputFrom >> isTemp >> inputTo; alphabet[inputFrom - 96][inputTo - 96] = true; alphabet[inputTo - 96][inputFrom - ..
-
백준 1613 역사 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 28. 19:27
1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net #include #include using namespace std; int n, k, s, from, to; int pre, aft; int history[401][401]; vector sol; void History(){ for(int v = 1; v
-
백준 11404 플로이드 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 28. 10:21
11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net #include #include using namespace std; int n, m, from, to, cost; int bus[101][101]; // 플로이드-와샬 알고리즘 // 1~2로 가는데 만약 3을 거쳐가는게 더 빠르다고 하면 3을 거쳐가는 비용으로 업데이트 void F(){ for(int v = 1; v