본문 바로가기

전체 글

abc329 오랜만에 타임어택을 했다. E 구현할 때 문자열 인덱스 구하는게 너무 헷갈렸다. 아니었으면 E를 1번만에 맞고 F까지 쭉 갔을텐데 아쉽다. 특히 E같은 문제는 나올때마다 실수하는게 너무 많아서 아마 특훈을 해야할 것 같다. 근데 E 풀이가 정해가 아니다 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.rbe.. 더보기
BOJ 18830 - 하이퍼 수열과 하이퍼 쿼리 (D5) PS를 진짜 제대로 하겠다는 마음가짐으로 역겨운 것도 다 풀기로 했다. 하이퍼 시리즈는 유명하다... 차원이 말도 안되게 큰 문제들이다. 얘는 이 문제를 11차원으로 늘린 문제이다. 그럼 그냥 11차원 prefix sum을 박으면 되느냐? 아쉽게도 아니다. prefix sum table을 채우는 원리는 포함-배제 원리이다. 이는 중복하여 더하고 빼는 구간들을 처리하는 것이다. 그래서 11차원 prefix sum을 채우려고 식을 세워보면 무려 2^11(=2048)개의 값을 더하고 빼는 형태가 나온다. 그래서 table을 채우는데에는 총 O(2^11 * nmopqrstuvw)가 나와 전체 서브태스크를 풀 수 없다. (아마 섭태3까지는 풀릴 것 같다.) 다행히도 얘를 O(11 * nmopqrstuvw)에 채울.. 더보기
abc328 오늘 ABC는 F까지 웰노운 덮밥이다. 한줄요약하면 D - 이거, E - 이거 비슷하게, F - 이거 D랑 F는 실제로 복붙했다. 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.. 더보기
abc327 블루 안녕~ 전에 코포랑 앳코더 좀 잘쳤다고 최근에 친 셋은 다 싫어하는 스타일의 문제로만 구성되어 있다. 덕분에 코포는 다시 1700대로 갔고 앳코더는 그래도 별로 안 떨어졌다. 최근에 기본기 부족이라는 걸 깨달았다. 왜냐면 뉴비 때 코드 복붙밖에 안했으니까 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.r.. 더보기
Codeforces Round 904 (Div.2) + 905 (Div.2) 어제 친 코포가 4시간 간격으로 4시, 8시에 있었다. 그래서 1645->1851로 총 206점이 하루만에 올랐다. R905에서 D2까지 (빨리) 다 풀었으면 퍼플까지는 갔을 것 같다. R905는 div1,2,3가 동시에 있어서 div2에 블루랑 퍼플만 치는 일이 일어났는데, 생각보다 레이팅은 잘 주는 것 같다. 확실한건 새벽에 안하고 낮에 하니까 실력이 좀 더 나오는 것 같다. Round 904 A k가 10밖에 안되서 그냥 나눠질때까지 올려보면 된다. 더보기 using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma optimize("unroll-loops") #define fast ios_base::syn.. 더보기
abc235 (블루 달성) 드디어 블루를 찍었다. 첫 앳코더 후 2년 1개월 만이다. nypc 시기 때 앳코더를 시작했는데 아이러니하게도 nypc 전 마지막 앳코더에서 블루를 달성했다. 오늘 백준이 잘 안풀려서 머리가 잘 안돌아갈 줄 알았는데, 시작하자마자 머리가 너무 잘 돌아가서 정말 빠르게 F까지 풀었다. A 앞에 문자열 + "san" 더보기 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() #defin.. 더보기
abc324 오늘은 객관적으로 그냥 본인이 못했다. F까지 충분히 1시간 안에 다 풀 수 있었다. 그럼 왜 망했는지를 알아보도록 하자. (=변명) A는 이전에 메모도 해놨던 건데, 모든 수가 같다는 것은 정렬했을때 front == back이므로 이것만 확인해주면 된다. 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() #defin.. 더보기
KOI 지역본선 2005 2587 - 대푯값2 (초1, Bronze II) 문제 5개의 수의 평균과 중앙값을 출력한다. 풀이 더보기 그대로 해주면 된다. accumulate()를 써도 된다. 시간복잡도는 O(1)이다. #include using namespace std; int arr[5], sum; int main(){ for(int i = 0 ; i >arr[i], sum += arr[i]; sort(arr, arr+5); cout0)a[2]--, c -= 4; a[1] -= c; } ans += a[3]/4+bool(a[3]%4); a[3] %= 4; if(a[3]==1){ ll c = 20; while(a[2]>0 and c>0)a[2]--, c -= 4; a[1] -= c+7; } if(a[3].. 더보기