boj 25

[BOJ 31419] 배열 제작의 달인, 생성 함수와 FFT

안녕하세요. 리유나입니다. 지난 UCPC 포스팅 이후로 생성함수 문제를 여럿 풀어보면서 그에 관련된 공부를 어느 정도 했는데, 마침 포스팅하기 좋은 문제가 있어 보여서 간략히 포스팅합니다. 먼저 문제는 다음과 같습니다.https://www.acmicpc.net/problem/31419 1. 접근간략히 생각해 보면, 1부터 n까지의 숫자가 특정 개수 주어져 있고, 그들 중 0의 개수만큼을 뽑아서 배열하는 방법의 경우의 수입니다. 이런 류의 문제에는 여러 가지 풀이가 있고 DP를 이용하는 풀이 또한 제법 알려져 있지만, 뽑는 종류가 워낙 여러가지고 상황에 따라 바뀔 수 있어서 당장 예쁜 일반항으로 나오기는 조금 어렵습니다. 이럴 때 생성 함수를 이용하면 제법 깔끔한 풀이를 사용할 수 있습니다. 우선 조금 더..

[BOJ 8481] Generator, 희대의 구데기 문제를 풀어보았습니다.

오랜만입니다. 리유나입니다. 최근 꾸준히 앳코더나 코포는 참여했지만 본진인 BOJ를 그렇게 열심히 하진 않았는데, 간만에 삘을 받아버린 바람에 이참에 8481이나 풀어야겠다! 하고 몇년을 묵힌 8481에 도전을 했습니다! 아마 16일 걸렸네요... 1. 그래서 이게 무슨 문젠데? 한국 PS판에서는 "8481"이라고 하면 그 자체만으로 이미 너무나도 유명한 숫자입니다. 저 문제는 "ONTAK 2010"이라는, 당시 폴란드 IOI 국가대표를 선발하는 시험에 출제된 문제고, 내용은 너무나도 간단합니다. 주어지는 숫자 0에서 10까지에 대해, 정해진 아웃풋 파일과 똑같은 것을 출력하면 됩니다. 사실 그걸로 끝이면 아무리 생각해도 국대 선발 문제도, 다이아 3 문제도, 유명 구데기 문제도 아닐텐데, 도대체 왜 그..

[BOJ 1081] 합, Digit DP가 뭘까?

안녕하세요. 리유나입니다. 생각해보니 ICPC에서 J번을 그럭저럭 괜찮은 페이스로 자력 해결을 했는데, 그보다 훨씬 쉬우면서 비슷한 로직을 가진 1081번 합.이라는 문제가 있었고 제가 이걸 6년 전, PS에 거의 처음 입문했을 때 시도했다가 틀린뒤로 건드리지도 않았다는 사실을 깨달았습니다. https://www.acmicpc.net/problem/1081 1081번: 합 L보다 크거나 같고, U보다 작거나 같은 모든 정수의 각 자리의 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 한번의 구현 실수를 제외하면, 아주 손쉽게 풀리는 스타일이었지만, 처음 입문하시는 분들이라면 다들 고등학교 시절의 저처럼 무언가 실수를 하실 부분이 있을듯 하니 도움이 되었으면 하는 바람에 포스팅을 시작합니다..

[2023 Seoul Regional J, BOJ 30861] Special Numbers

리유나입니다. ICPC에서 제가 풀었던 문제의 풀이를 조금 더 자세히 적어보려고 합니다. 대략적인 풀이의 스케치는 이 글의 아랫부분에 있습니다. 수학문제와 dp문제의 경계 어딘가쯤에 있는 Digit DP라는 스타일의 문제이고, 사실 저는 수학이라고 생각하고 접근했다가 '에이 수학 아니잖아... 하지만 풀이는 나왔으니 뭐 풀어야지'하고 풀었습니다.(Digit DP라는 말이 있는 걸 대회 후에 처음 알았습니다.)한국 리저널에는 잘 안나오던 스타일의 문제인 듯한데, 제게는 찐수학만큼은 아니지만 상당히 강한 유형이었기 때문에 그리 어렵지 않게 풀었습니다....였으면 얼마나 좋았을까요? 예외처리 하느라 고생하면서 조금 어렵게 풀었습니다. 문제를 해석하면, L부터 R까지의 자연수 중에서 모든 자릿수를 곱했을 때 k..

[BOJ 27533] 따로 걸어가기

https://www.acmicpc.net/problem/27533 27533번: 따로 걸어가기 첫째 줄에 정수 $N$과 $M$이 공백을 사이에 두고 주어진다. ($2 \le N, M \le 200\,000$) www.acmicpc.net 오래간만입니다. 리유나입니다. 어쩌다보니 한번 손을 놓게 된 뒤로 또 포스팅을 한참 못하게 되더라고요... 시험도 끝난 김에 뭐라도 다시 글을 올리려고 최근에 풀었던 조합론 문제를 하나 소개하려고 합니다! SUAPC 2023 Winter L번으로 나온 문제라고 하네요. 문제의 설명은 꽤나 귀엽고 재미있는데, 대강 요약하면 N*M 격자 위에서 최단경로로 이동하는 경우의 수를 구하는 문제입니다! 다만 여기서 조건이 추가로 붙는데, 토순이와 토준이가 크게 싸운 탓에, 출발점..