2042๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ (acmicpc.net) 2042๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)๊ณผ M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) ๊ฐ ์ฃผ์ด์ง๋ค. M์ ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ํ์์ด๊ณ , K๋ ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ ํ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์งธ ์ค๋ถํฐ N+1๋ฒ์งธ ์ค www.acmicpc.net #if 01 #include #include using namespace std; long long arr[1000001], tree[1000001]; int n, m, k;// ๋ฐ์ดํฐ ๊ฐฏ์, ๋ณ๊ฒฝ ํ์, ๊ตฌ๊ฐํฉ ๊ณ์ฐ ํ์ // i๋ฒ์งธ ์๊น์ง์ ๋์ ํฉ์ ๊ณ์ฐํ๋ ํจ์ // 0์ด ์๋ ๋ง์ง๋ง ๋นํธ๋งํผ ๋นผ๋ฉด์ ๊ตฌ๊ฐ๋ค์ ๊ฐ์ ํฉ ๊ณ์ฐ long long p..
// pq์ ์ฌ๋ฆผ์ฐจ์์ผ๋ก ๋ฃ๊ณ ์ถ์ ๋ struct cmp { bool operator() (Line a, Line b) { return a.e > b.e; } }; priority_queue pq; // ๋ฒกํฐ๋ฅผ ์ฌ๋ฆผ์ฐจ์์ผ๋ก sortํ๊ณ ์ถ์ ๋ bool compare(Line a, Line b) { return a.s < b.s; } sort(monster.begin(), monster.end(), compare); priority queue ์ ๋ค์ด๊ฐ cmp bool struct
#include #include #include using namespace std; struct Edge { int cost; int a; int b; }; bool cmp (Edge a, Edge b) { if(a.cost >= b.cost) return false; else return true; } int N, M; int parent[1001]; vector edges; int result; int getParent(int a) { if (parent[a] == a) return a; return parent[a] = getParent(parent[a]); } void unionParent(int a, int b) { a = getParent(a); b = getParent(b); if(a < ..
#include #include #include using namespace std; struct Edge { int cost; int a; int b; }; bool cmp (Edge a, Edge b) { if(a.cost >= b.cost) return false; else return true; } int N, M; int parent[1001]; vector edges; int result; int getParent(int a) { if (parent[a] == a) return a; return parent[a] = getParent(parent[a]); } void unionParent(int a, int b) { a = getParent(a); b = getParent(b); if(a < ..
#include #include #include #include #define INF (int(1e9)) using namespace std; struct Edge { int pos[2]; int cost; }; struct cmp { bool operator() (Edge a, Edge b) { if (a.cost d[cur.pos[0]][cur.pos[1]]) continue; for(int i = 0; i = N || nc >= N) continue; if (d[nr][nc] > N; memset(map, 0, sizeof(map)); string temp;..