BaaaaaaaarkingDog
코딩, 해킹
2019 ICPC Seoul Regional Preliminary

팀노트 pdf를 전날 완성했다. 코드 자체는 미리 모아뒀어서 작년처럼 새벽까지 고생하지는 않았다.

 

Wrong Answer가 많이 뜨지 않는한 프린터는 필요가 없지만 그래도 혹시나 하는 마음에 친구에게서 프린터를 빌려서 세팅을 해두었다. 프린터가 굉장히 무거워서 고생했다. 모니터는 근처에서 자취하는 팀원 집에서 가져왔다.

 

이땐 몰랐다. 프린터가 없으면 아주 큰일날 뻔 했다는 것을..

 

여러 안좋은 상황들이 겹쳤는데, 원래는 같은 대학에서 13팀이 대회를 신청했기 때문에 예년처럼 미리 지도교수님이 문제 pdf를 제공받아서 미리 출력해두었다가 대회가 시작하면 나눠줄 수 있지만 뭔가 좀 꼬여서 문제 pdf를 교수님이 늦게 전달받았고 출력도 지연되어 결국 문제지들을 대회가 시작하고 한참 후에야 받았다. 그리고 서버마저 터졌다.

 

등록도 제출 못하고 그나마 A번이 열려서 3명 다 A번만 읽으면서 이거 LR플로우네 하며 A번을 짜고 있었고 그 와중에 틈틈히 서버는 안돌아왔나, 다른 문제는 열린거 없나 계속 확인을 해야 했다. 그러다가 억겁의 시간을 거쳐 문제들이 조금씩 열렸고 B C D ... 이렇게 순차적으로 열었는데 일단 딱보니 B가 굉장히 쉽길래 빠르게 조졌다. 이 때 프린터가 없었으면 꼬일 뻔 했는데 프린터가 있어서 열리는 문제를 바로바로 출력하면서 진행했다. B를 짜도 제출은 열릴 생각을 안했고 다른 친구가 C를 짜던 중에 이제 슬슬 제출이 열려서 I번 등록 문제와 B를 냈다. 이 때가 24분이었다;;

 

그래도 그 뒤로는 A, L에서 조금 시간이 끌린 것 빼고는 전반적으로 다 무난하게 진행이 되었다. 또 정말 다행인게 채점이 엄청나게 지연되는 상황 속에서도 Wrong Answer를 안띄우고 계속 진행이 되어서 마음이 그나마 좀 편했다.

 

A B C H I L은 한번 만에 Accepted를 받고 D E J의 결과를 모르는 채로 다른 문제의 풀이가 나오지 않아 그냥 기존 문제들 풀이나 검증하자 싶어 가장 DM을 만들기 쉬운 D를 DM을 돌려 검증하다가 문제가 있음을 알아내 코드를 수정해서 제출했다. 이후 F 풀이를 생각하다가 대회가 종료되었다.

 

대회가 끝나고 고기를 먹고 있는데 결과가 나왔다길래 확인해보니 E가 나가있었다. 아마 구현상의 실수가 있던 것 같다. 그래도 다행히 D와 J는 문제 없이 통과되었고 최종적으로 8솔브를 했다. 시험장에서 F는 전혀 실마리를 잡지 못했던 것이 아쉽다.

 

컷이 7솔브였으니 조금만 삐끗했어도 굉장히 꼬일 뻔했다. 본선엔 이런 일 없겠지ㅜㅜ

  Comments
댓글 쓰기
[BOJ] 15896번: &+ +&

https://www.acmicpc.net/problem/15896

 

아주 오랫동안 헤매다가 풀이를 보고 해결했습니다. &+의 경우에는 각 자리를 따로 보면 되니까 쉬운데 +&를 어떻게 해야할지 좀 많이 어려웠습니다.

 

결론적으로 +&에서도 각 자리를 따로 보는데, 해당 자리가 1이기 위해서는 모든 +의 결과가 1이어야 한다는 것을 알 수 있습니다. 예를 들어 5번째 자리가 1인지 확인하려면 0xxxx + 0xxxx, 0xxxx + 1xxxx, 1xxxx + 0xxxx, 1xxxx + 1xxxx 의 결과에서 5번째 자리가 1인지를 보면 되는데 모든 xxxx를 다 볼 필요가 없이 가장 큰 것과 가장 작은 것만 보면 됨을 알 수 있습니다.

 

https://github.com/blisstoner/BOJ/blob/master/15896.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 15896번: &+ +&  (0) 2019.10.15
[BOJ] 17513번: Hilbert's Hotel  (0) 2019.10.15
[BOJ] 10464번: XOR  (0) 2019.09.12
[BOJ] 16685번: XOR 포커  (0) 2019.09.12
[BOJ] 11191번: XOR Maximization  (0) 2019.09.12
[BOJ] 4798번: Dirichlet's Theorem  (0) 2019.09.11
[BOJ] 13925번: 수열과 쿼리 13  (0) 2019.09.09
  Comments
댓글 쓰기
[BOJ] 17513번: Hilbert's Hotel

https://www.acmicpc.net/problem/17513

 

대회중에는 풀어내지 못했던 문제입니다. group의 시작 위치를 $ax+b$꼴의 segment tree로 관리하면 1, 2번 쿼리의 처리가 가능하고, 또 group이 추가될 때 마다 유한한 그룹은 묶어서 관리하면 3번 쿼리에 대해 최대 30개의 그룹 묶음을 확인하면 됨을 알 수 있습니다. 그룹 묶음 내에서 정확한 그룹을 찾기 위해서는 binary search를 이용해야 합니다.

 

3번 쿼리의 구현이 개념이 엄청 어려운건 아닌데 이상하게 계속 틀려서 정말 까다로웠습니다.

 

https://github.com/blisstoner/BOJ/blob/master/17513.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 15896번: &+ +&  (0) 2019.10.15
[BOJ] 17513번: Hilbert's Hotel  (0) 2019.10.15
[BOJ] 10464번: XOR  (0) 2019.09.12
[BOJ] 16685번: XOR 포커  (0) 2019.09.12
[BOJ] 11191번: XOR Maximization  (0) 2019.09.12
[BOJ] 4798번: Dirichlet's Theorem  (0) 2019.09.11
[BOJ] 13925번: 수열과 쿼리 13  (0) 2019.09.09
  Comments
댓글 쓰기