본문 바로가기

전체 글

(170)
[BOJ 2904] 수학은 너무 쉬워 2904번: 수학은 너무 쉬워 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 100) 둘째 줄에는 종이에 적혀있는 수 N개가 주어진다. 수는 모두 1,000,000보다 작거나 같은 양의 정수이다. www.acmicpc.net 예쁘게 구현한 것을 자랑하고 싶어 가져왔다. 관련 테크닉도 자주 쓰이는 듯 하니 기억하자. 더보기 최대공약수를 크게 만들려면 n개의 수에 소인수가 균등하게 분배되어야 하는 것이 자명하다. n개의 수를 모두 곱한 다음 최대한 비슷하게 다시 n개의 수로 쪼갠다고 생각해도 무방하다. 그러나 이동횟수도 구해야 하므로 처음 수는 저장해야 한다. 벡터에 모든 소인수를 저장하고, 맵에 각각의 수의 소인수분해 결과와 합친 결과를 저장한다. 그리고 모든 소인수에 대해 최대공약수와 이동횟수를 갱신해주면 ..
Codeforces Round #697 (Div. 3) Dashboard - Codeforces Round #697 (Div. 3) - Codeforces codeforces.com 대회 시작 5분 전부터 대기 타다가 갑자기 15분이 연기돼서 블로그 쓰러 왔다.. 사실 unrated round가 처음이라 약간 기분이 좋다 ㅋㅋ 다른 분들 편하게 푸실 때 부러웠는데 내가 그 입장이 되니 기분이 묘하다...ㅎ 지금까지는 div.3에서 퍼포먼스가 잘 나오지 않았는데, 이번에는 다르길 기대해본다. (10분이 추가로 연기되어서 12시 정각에 시작했다.) Prob. A 1을 제외한 홀수 약수가 있는지 묻는 문제. 답이 빤히 보여서 예제도 안 돌려보고 제출. 하지만 자잘한 실수를 해서 1CE, 1WA 후 AC. Prob. B 부정방정식 문제. 까다로운 듯하였으나 식을 전..
알고리즘 모음 ( 개인 노트용 ) 깃허브에 올리고 싶었지만 깃허브는 너무 어렵다. (상시 수정합니다.) (재정리가 필요해보인다.) 1. Segment Tree 구현체는 간단하나 응용이 어렵다는 생각이 듦. 구현 복잡하고 응용 다양한 코드는 제출코드 참고. 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net #include using namespace std; typedef long long ll; ll arr[1>=1) arr[i>>1]=arr[i]+arr[i^1]; } ll sum(in..
Ruby V 해결 & Platinum II 달성 Platinum III 달성 글을 올린 지 불과 하루 만에, Ruby V 문제를 해결하고 Platinum II를 찍었다. 제비라는 수학 문제였는데, 많게 잡으면 5시간 정도? 걸린 것 같다. 모 채팅방에서 얘기가 나와 도전해봤고, 다행히 헤매지 않고 풀었다. 원래 나는 루비는커녕 다이아도 시도조차 안 하는 겁쟁이었는데, 말도 안 되게 높은 경험치를 보니 눈이 돌아가서 풀게 되었다. 평범한(?) 조합 문제였고, 대충 식을 세워서 식을 예쁘게 정리하니 답을 구할 수 있었다. 식을 정리하는 과정이 너무 지루해 종종 다른 길로 새기도 하였다. 기회가 된다면 다른 분들의 풀이도 들어보고 싶다. (정해를 봤는데 일반항 구하는게 맞더라.) 2021.04.10 수정 : 제비가 모종의 이유로 다이아로 내려갔고, 다시 루..
Platinum III 달성!