10개의 댓글이 있습니다.
-
-
Ze-ze -
저 역시 허접입니다만;; 음 풀이법을 말씀드리면, 일단 조커박스 하나를 택하고요.
조커박스를 제외한 나머지 박스들 중에서 조건을 만족하지 못하는 박스의 모든 마블들을
조커박스로 옮겨버리면, 이것보다 최적의 경우는 존재하지 않습니다.
(왜냐하면 조건을 만족하지 않는 박스에서 최소한 하나는 옮겨야 하니까)
그럼 문제는 어떤 조커박스를 선택하느냐의 문제인데,
전 문제풀 당시 별 생각없이 가장 많은 종류의 색깔을 가진 걸 조커박스로 선택했는데
나중에 치명적인 문제가 있음을 종료 20초 전에 깨달았습니다. -_-; (챌린지 당했어염 T-T)
간단히 생각하면 어차피 박스가 50개 뿐이니, 각각을 모두 조커박스로 선정해 보아서
가장 최적의 경우가 나오는 것을 선택하면 되겠습니다.
16년 전 link
-
-
-
nocut98 -
저도 이해하는데 많은 시간이 걸렸지만, 제가 이해한바로는
어짜피 한번에 옮길 때 여러개의 여러색깔의 구슬을 옮길 수 있으므로 1번만 옮기면 대상 박스는 깨끗해 집니다.
그럼 결국 "옮기느냐, 마느냐"의 문제로 정리가 되고 색마다 한개씩만 냅두고, 죄다 (가상의) joker로 옮긴다고 생각해서 구하고
joker는 옮겨야 하는 것중에 하나에 중복해서 설정해주면, 해당 박스는 안 움직여도 되니까 moves에서 -1을 해주면 되죠.(moves가 0일수도 있으므로 max(0, moves-1)정도로..
최대 moves는 박스의 갯수 - 1(조커)가 될테구요. 여기서 안 옮겨도 되는 케이스를 세서 빼주면 됩니다.
1. 1종류만 있어야 하고
2. 같은 색깔의 다른 박스가 없을 때
인 경우를 세서 빼주면 된다는... 전 600점 짜리를 320에 풀었으니;;; 꽤나 늦게 풀었네요
16년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
태양인
흠, 형편없는 실력의 소유자입니다. boxes ) {
이번이 두번째 srm인데요,
처음 srm때와 마찬가지로 easy는 쉽게 풀었습니다.
그런데!!! 미듐부터는 정말 너무 진짜로 손도 못대겠어요,
학교에서 뭐 여러가지 배우고 알고리즘도 배웠지요,
나름 잘 배웠다고 생각했지만 이건 뭐, 아에 아이디어를 내지도 못하겠습니다.
지금
#include
#include
using namespace std;
class MarblesRegroupingEasy{
public :
int minMoves( vector
이런 상황입니다. 여기서 더이상 코딩을 못하겠어요,
작년 ICPC 당근, 인터넷 예선 탈락입니다.
뭐 어떻게 공부를 해가야 하는지,,,,
그러니깐 응용, 적용 이런걸,,,,, 멍청해서 인지 못하겠습니다.
그냥 무작정 연습방 들어가서 계속 해보는 것이......해답일까요,
16년 전