본문 바로가기

전체 글

KOI 지역본선 2004 고등부 5번 청개구리를 제외한 문제들의 풀이이다. 2309 - 일곱 난쟁이 (초1, Bronze I) 문제 9명 중 7명의 키를 합했을 때 100이고 유일하다. 이때 7개의 수를 오름차순으로 출력하시오. 풀이 더보기 9명 중 7명을 고르는 것과 9명 중 2명을 제외하는 것은 같으므로 2명을 제외하는 모든 경우를 고려한다. 시간복잡도는 O(9^2)이다. 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.. 더보기
abc323 아레나랑 연속으로 해서 망한건진 모르겠지만 D에서 로그제곱때문에 TLE 먹고 시간 날리고 E는 분수 출력을 이상한 mod로 해야 해서 망했다. A 구현 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 1000.. 더보기
abc322 이번엔진짜F풀수있었는데이번엔진짜F풀수있었는데더어려운것도전에풀었는데더어려운것도전에풀었는데더어려운것도전에풀었는데 속도는 충분하다. 옐로우 찍히는 문제들을 쭉 돌다보면 F도 잘 되겠지 A ABC찾기 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("unro.. 더보기
Codeforces Round 665 (Div. 2) A~D 한국인 세터길래 풀어봤다. A 가장 문제가 난해했다. 쉬운 case work로 풀린다 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 1000000007 typedef long long ll; void.. 더보기
abc321 오랜만에 망했다. F 풀이 맞는데 왜 답이 안나오는지 아직도 모르겠다 망했으므로 대충 쓰겠다. 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 1000000007 typedef long .. 더보기
9/22 PS G3~P3 랜디 2개 + 코포 div2 C + 앳코더 민트 1문제 (1) 랜디 https://www.acmicpc.net/problem/2694 2694번: 합이 같은 구간 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 50)가 주어진다. 각 테스트 케이스는 첫째 줄에 수열의 크기 M이 주어진다. (1 ≤ M ≤ 10,000) 그 다음 줄부터는 그 수열에 들어있는 수가 주어지고, 한 www.acmicpc.net Gold 3. 사용 알고리즘 브루트포스 + O(sqrt(n)) 약수 순회 풀이 O(M)에 합이 x가 되게 분할할 수 있는지를 판별할 수 있다. 또한 배열 전체의 합을 s라 할 때, 분할할 수 있는 값의 후보로는 s의 약수가 가능하다. 따라서 s의 모든 약수에 대하여 O(M)에 판별해줘서 최솟값.. 더보기
제1회 청소년 IT경시대회 중등부 후기 그냥 재밌어보여서 쳤다. 아마 9월 16일에 쳤던 것 같다. 원래 후기 안쓰려고 했는데 백준에 문제가 올라와서 간단하게 정리만 하겠다. 백준에 안올라올 줄 알고 코드는 다 지웠어서 다시 짰다. 240305 추가) 1회 난이도는 정올 하위호환 정도라고 생각하면 되고, 특히 1회는 빈집(고수들이 없음)이었기 때문에 275점이 대상이었다. 2회부터는 어떻게 될지 잘 모르겠다. 총점 275/300 만점 노리고 한 대회였는데 A,C를 풀고 B를 못 풀어서 충격먹었다. A 4분인가 걸렸다. 문자열에서 팰린드롬인 가장 긴 suffix를 구해야 한다는 사실을 알아낸다면 쉽게 풀 수 있다. using namespace std; #define fast ios_base::sync_with_stdio(0); cin.tie(0.. 더보기
BOJ 25392 - 사건의 지평선 (D3) 사용 알고리즘 Segment Tree + SCC + 위상정렬 dp 풀이 일단 어떻게 했는진 몰라도 i->L~R 간선을 잘 이어줬다고 치자. 무한 번 표시된다 = 사이클에서 돌고 있다는 의미이다. 따라서 사이클 내부에서 가장 큰 원소를 찾으면 그 사이클 내부에서의 정답이 된다. 단 어떤 사이클 u에서 v로 간선이 있는경우, u에서의 정답은 max(u 내부에서의 정답, v 내부에서의 정답)이다. 따라서 위상정렬 dp로 순차적으로 사이클에서의 최댓값을 결정해나가면 된다. 이제 i->L~R 간선을 깔끔하게 처리하는 법만 생각하면 된다. L~R은 구간이다. 구간 크기가 O(N)이므로 간선이 최대 O(N^2)개가 생긴다. 그렇다면 구간을 O(logN) 정도로 표현할 수 있다면 추가해야 하는 간선은 O(NlogN)개.. 더보기