#pragma warning(disable:4996) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define INF 987654321 #define pa pair using namespace std; int n, m; vectormapp; int dirX[] = { 1,0 ,-1,0 }; int dirY[] = { 0,1,0,-1 }; int day = 0; void dfs() { vector visited; visited = vector(n, vector(m, false)); int ..
문제 링크(www.acmicpc.net/problem/11066)](www.acmicpc.net/problem/11066) 내 코드(https://github.com/haung921209/TIL/blob/master/Documents/PS/DP/11066.md) 1. 첫번째 풀이 - 참조 후 푼 문제. 코드 #pragma warning(disable:4996) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define INF 987654321 using namespace std; vecto..
A. Most Unstable Array 제출 답안 간단한 문제 B. Two Arrays And Swaps 제출 답안 간단한 문제. 크기가 작으므로, 그때그때 sorting 해주면서, B의 최댓값과 A의 최솟값을 변경해주면 됨. 다만 변경 후 오히려A가 작아졌다면, 횟수에 상관 없이 더이상 변경은 하지 않고 종료 C. Board Moves 제출 답안 간단한 문제. 판을 8등분하는 것이 좋음.(x와 y 중 중앙을 기준으로 큰 것을 기준으로 기준하면 되기 때문.) D. Constructing the Array 제출 답안 처음에 모든 값을 다 저장해서 실패. Priority_queue를 이용하면 편하게 풀 수 있음. 다만, 이 경우는 좌표값을 저장해야 하므로, custom 비교 연산자를 사용하는 것이 좋을 것..
문제 위치 E - Third Avenue 본인 작성 코드 #pragma warning(disable:4996) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define INF 987654321 #define pa pair using namespace std; vector mapp; vector dist; int dirX[] = {1,0,-1,0}; int dirY[] = {0,1,0,-1}; int h, w; void bfs(int y, int x) { queue q; q.push({ y..
A - Determinant editorial 간단한 사칙 연산 B - Quizzes editorial 간단한 사칙연산 if 조건문 하나 추가로 해결 가능함. C - Super Ryuma editorial 조건 설정을 잘못 함. 문제 풀 당시 조건 생각은 다음과 같음 같다 : 0 조건 내에 있다 : 1 짝홀이 같으나 조건 내에 없다 : 2 짝홀도 다르고 조건 내에 없다 : 3 위와 같이 풀면, 당장 example에도 WA가 나오는 것을 알 수 있음. editorial에서와 같이, 1번 움직이는 경우는 조건 내에 있는 경우이나, 2번 내에 움직이는 경우는 주어진 조건의 조합으로 고려해볼 수 있는 문제이다. 주어진 문제에서 시도하지 않고, 외부의 지식을 사용해 풀려고 시도하였기 때문에 시간 내에 조건 찾기 ..
typedef int KeyType; struct Node { KeyType key; Node* left, *right; int priority; int size; Node(const KeyType& _key) :key(_key), left(NULL), right(NULL), priority(rand()), size(1), { } void setLeft(Node *newLeft) { left=newLeft; countSize(); } void setRight(Node* newRight) { right = newRight; countSize(); } void countSize() { size = 1; size += left->size; size += right->size; } }; typedef pair ..
begin(), end() method // map::begin/end #include #include int main () { std::map mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; // show content: for (std::map::iterator it=mymap.begin(); it!=mymap.end(); ++it) std::cout first second == 3) iterator가 되고, loit의 경우 동일한 index 를 사용했지만, 2를 가리키는(loit->first==2, loit->second == 2) iterator가 된다.
vector vecSlice(vector inp, int a, int b) { //