알고리즘268 11437 LCA 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117#include #include #include using namespace std; int depth[50005] = { 0 };int par[50005][30] = { 0 };int visit[50005] = { 0 };int rst; vector son(50005);vec.. 2019. 9. 14. 10451 순열 사이클 # 1. dfs 부분을 visit 배열로 했을 경우 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include #include int fin[100005];int arr[100005]; int visit[100005]; int start, cnt = 0; void dfs(int idx); int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); memset(fin, 0, sizeof(int) * (n + 1)); memset(arr, 0, sizeof(int) * (n + 1)); memset(visit, 0, siz.. 2019. 9. 4. 9466 텀 프로젝트(hard) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include int fin[100005];int arr[100005]; int visit[100005]; int start, cnt = 0; void dfs(int idx); int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); memset(fin, 0, sizeof(int) * (n + 1)); memset(arr, 0, sizeof(int) * (n + 1)); memset(visit, 0, sizeof(int) * (n + 1)); for .. 2019. 9. 3. 2668 숫자 고르기 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include #include using namespace std; int ans[105] = { 0 };int arr[105] = { 0 };int visit[105] = { 0 }; int start, n; void dfs(int idx); int main() { scanf("%d", &n); for (int i = 1; i 2019. 9. 3. 1202 보석도둑 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include #include #include #include #include using namespace std; vector jew;vector bag; bool compare(pair a, pair b) { if (a.first > b.first) { return false; } else if (a.first 2019. 8. 29. 1781 컵라면 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include #include #include #include #include using namespace std; vector arr; bool compare(pair a, pair b) { if (a.first == b.first) { return a.second > b.second; } else if (a.first > b.first) { return true; } else { return false; }} int main() { int n, line = 0; scanf("%d", &n); for (int i = 0; i 2019. 8. 29. 10845 큐 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include #include #include #include using namespace std; queue q; int main() { int t; scanf("%d", &t); while (t--) { string str; cin >> str; getchar(); if (str == "push") { int n; scanf("%d", &n); q.push(n); } else if (str == "pop") { if (q.size() == 0) { printf("-1\n"); continu.. 2019. 8. 27. 2606 바이러스 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include #include using namespace std; vector dp;vector adj; int INF = 1000000000; int main() { int com, net; scanf("%d %d", &com, &net); adj.assign(com+1, vector(com+1, 0)); dp.assign(com + 1, vector(com + 1, INF)); while (net--) { int a, b; scanf("%d %d", &a, &b); adj[a][b] = 1; adj[b][a] = 1; dp[a][b.. 2019. 8. 27. 2605 줄 세우기 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include #include #include using namespace std; int arr[105] = { 0 };int rst[105] = { 0 };deque dq;stack tmp; int main() { int n, num; scanf("%d", &n); getchar(); for (int i = 1; i 2019. 8. 27. 1991 트리 순회 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586#include #include #include using namespace std; vector arr(30); int ctoi(char c) { return (int)(c - 'A' + 1);} char itoc(int n) { return (char)(n + 'A' - 1);} void preorder(int c);void inorder(int c);void postorder(int c); int main() {.. 2019. 8. 26. 17412 도시 왕복하기 1 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081#include #include #include #include using namespace std; vector adj(405); int cost[405][405] = { 0 };int flow[405][405] = { 0 }; int main() { int n, p, rst = 0; scanf("%d %d", &n, &p); while (p--) { int a, b; scanf("%d %d", &a, &b); cost[a][b] =.. 2019. 8. 22. 11377 열혈강호3 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113#include #include #include using namespace std; vector adj(2020); int flow[2020][2020] = { 0 };int cost[2020][2020] = { 0 };int mid = 2010, last = 2015; int main() { i.. 2019. 8. 22. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음 more