본문 바로가기

전체 글

Solved.ac Arena - 2023 충남대학교 SW-IT Contest Open - Division 1 앞 문제들은 웰노운 또는 쉬운 문제(?)이므로 풀이를 간단하게 작성한다. A 설명이 필요없다. using namespace std; #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all(x) x.begin(), x.end() #define rll(x) x.rbegin(), x.rend() #define comp(x) x.erase(unique(all(x)), x.end()) #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #define MOD 998244353 typedef long long ll; .. 더보기
abc320 솔브수는 계속 비슷하게 나오지만, 실력은 확실히 성장하고 있는 것 같다. 저저번에는 F가 감도 안잡혔는데, 이번엔 꽤 풀이를 진행했다. A (0:00 ~ 0:35) n^m + m^n. using namespace std; #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all(x) x.begin(), x.end() #define rll(x) x.rbegin(), x.rend() #define comp(x) x.erase(unique(all(x)), x.end()) #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-lo.. 더보기
ABC129 D, ARC149 C https://atcoder.jp/contests/abc129/tasks/abc129_d D - Lamp AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제 요약 n*m에 벽이 있고 빈곳이 있는데 빈곳에 램프를 두면 상하좌우로 빛이 벽에 닿을때까지 뻗어나간다. 하나의 램프를 둬서 최대 몇개의 칸에 빛이 닿을 수 있게 할 수 있는가? 풀이 시간 6분 풀이 각 위치에서 상하좌우로 최대로 몇만큼 뻗을 수 있는지를 O(1)에 알 수 있으면 O(NM)에 된다. U[i][j] := (i,j)에서 최대한 위로 뻗을 때 칸 수 D[i.. 더보기
단대소프트고 2023 알고리즘 대회 (작성중) *작성중* A 구현 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma optimize("unroll-loops") #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all(x) x.begin(), x.end() #define rll(x) x.rbegin(), x.re.. 더보기
ABC319 E를 무려 7분만에 풀었지만 C를 60분만에 풀어버리면서(...) 망했다. A (0:00 ~ 2:35) 노가다 문제 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma optimize("unroll-loops") #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all.. 더보기
ABC318 A (0:00 ~ 0:58) 반복문 기초 문제 using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma optimize("unroll-loops") #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all(x) x.begin(), x.end() #define rll(x) x.rbegin(), x.rend() #define comp(x) x.erase(unique(all(x)), x.end()) #define MOD 1000000007 typedef long long ll; int main(){ fast; ll n,m,k; st.. 더보기
BOJ 29202 - 책가방 (D5) 2023 KSA Automata G번이다. 아레나 당시에 27점까지 긁었는데, 27점 풀이로 44점까지 긁을 수 있었다는 걸 대회 때 알았으면 더 좋았을 것 같다. 사용 알고리즘 Segment Tree + 좌표 압축 && 그리디 (우선순위 큐) 풀이 일단 섭태3을 풀어보자. 부피의 최댓값만 고려하면 되므로 부피 기준으로 오름차순으로 정렬하고 정렬된 배열에서 x번 책을 고르면, 1~x-1 사이 책은 모두 부피가 Vx 이하이다. 따라서 이 중에서 무게가 작은 k-1개를 골라주는게 이득이다. 이는 우선순위 큐(max heap)의 크기를 k-1으로 유지하고, 하나의 변수를 관리하는 것으로 해결할 수 있다. for(int i = 0 ; i < n ; i++)v[i].i=i+1; sort(all(v.. 더보기
solved.ac 다이아 3 달성 20230901. 다이아 3을 달성했다. 원래 오늘 2386점이었는데 D5, D5, D3, D2를 풀어서 17점을 올렸다. 이때 처음으로 다이아 2를 해결했다. 아침에 등교하다가 Offline Dynamic Connectivity라는 알고리즘을 알게 되었다. 내용도 세그먼트 트리 + 분할정복을 이용하는 비교적 간단한(?) 알고리즘인데도 기본 티어가 다이아5여서 학교에서 조금씩 익혔다. https://www.acmicpc.net/problem/16911 https://www.acmicpc.net/problem/16912 ODC로 푼다면 위 두문제는 완전히 같은 문제다. ODC를 배우고 나니 이전부터 고민하고 있던 문제를 풀 수 있겠다는 생각이 들었다. https://www.acmicpc.net/proble.. 더보기