아.. 이번 match는 지금까지했던 match중 최악이었다.. ㅠ_ㅠ
문제는 가장 쉬웠는데.. 한문제도 못푸는.. 그것도 모잘라서 챌까지 당하고..
요즘 되는일이 하나도 없더니.. 탑코더도 안되네.. 컨디션 최악이다..
덕분에 rating 대폭 하락.. green이 되는 소기의 목적(?)을 달성했다..
다음번엔 그토록 원하던 DIV2를 하겠지만.. 3번 치뤘던 DIV1에서 한문제도 못푼게.. 좀 씁쓸하다..


사용자 삽입 이미지


[250] ChangingSounds
정말 쉬운 문제이다.. 숫자 배열이 주어지고 그 숫자만큼 소리를 높이거나 낮출수있다.. 소리는 maxLevel을 넘어갈 수 없고.. 0 밑으로 떨어져서도 안된다.. 이 조건을 유지하면서 마지막까지 도달했을때 가능한 최대 level을 구하는 문제..

뭐 다양한 방법이 있다.. -_-;;
도저히 틀릴수없다고 생각했는데 챌 당했다.. 나중에 알고보니 초기화 문제였다.. 처음에 문제를 잘못이해하고 잘못 짜다가 나중에 수정했는데.. 미쳐 고치지 못한 한줄이 있었다.. ㅠ_ㅠ 그나저나 찾아낸놈도 대단하다..

      1 #include <iostream>
      2 #include <cstdio>
      3 #include <algorithm>
      4 #include <vector>
      5 using namespace std;
      6 #define max(x, y) ((x) > (y) ? (x) : (y))
      7
      8 int bound;
      9 int check[51][1001];
     10 int num[51];
     11 int n;
     12 int fl;
     13 int max1;
     14
     15 void dfs(int u, int cnt)
     16 {
     17     if (cnt == n) {
     18         fl = 1;
     19         max1 = max(max1, u);
     20         return ;
     21     }
     22
     23
     24     if (u - num[cnt] >= 0 && check[cnt+1][u-num[cnt]] == 0) {
     25         check[cnt+1][u-num[cnt]] = 1;
     26         dfs(u-num[cnt], cnt+1);
     27     }
     28     if (u + num[cnt] <= bound && check[cnt+1][u+num[cnt]] == 0) {
     29         check[cnt+1][u+num[cnt]] = 1;
     30         dfs(u+num[cnt], cnt+1);
     31     }
     32     return ;
     33 }
     34
     35 class ChangingSounds {
     36 public:
     37
     38 int maxFinal(vector<int> changeIntervals, int beginLevel, int maxLevel)
     39 {
     40     int i;
     41
     42     n = changeIntervals.size();
     43     bound = maxLevel;
     44
     45     for (i = 0; i < n; i++) {
     46         num[i] = changeIntervals[i];
     47     }
     48
     49     fl = 0;
     50     max1 = -1;
     51     memset(check, 0, sizeof(check));
     52     check[0][beginLevel] = 1;
     53
     54     dfs(beginLevel, 0);
     55
     56     if (fl)
     57         return max1;
     58     return -1;
     59 }
     60
     61 };



[500] GuitarConcert
기타 종류와 각 기타가 연주할 수 있는 노래의 종류가 input으로 들어온다. 최대한 많은 노래를 연주할 때 선택해야하는 최소의 기타 set을 구하는 문제..

vertex cover문제.. 쉬운문제였는데 역시 못풀었다.. 나중에 다른사람 코드를 살펴보고는 황당해했다는.. -_-;
기타의 개수가 50개인줄알고 GG쳤는데.. 나중에 알고보니.. 이런.. ㅠ_ㅠ 나 요즘 왜이러지..

임의로 만들 수 있는 기타 셋 (binary representation으로 0~2^10까지 숫자로 표기)에 대해서 연주할 수 있는 최대 음악을 다 포함하는게 답이다.. 답이 여러개일경우 lexy-smallest로..
코딩하기는 귀찮다.. -_-;;



[1000] LateForConcert
이문제는 조금 읽어보다가.. 중간에 좀 짜증나는거같아서 때려쳤다.. 뭐 그렇게 조건이 많은지.. -_-;





'Problem Solving > TopCoder logs' 카테고리의 다른 글

TopCoder SRM 371 Div2 (완료)  (2) 2007.10.14
TopCoder SRM 370 Div2  (0) 2007.10.14
TopCoder SRM369 DIV2  (6) 2007.10.05
TopCoder SRM 368 Div 1  (0) 2007.10.03
TopCoder SRM 367 Div 2 (완료)  (10) 2007.09.27
TopCoder SRM 365 Div 1  (0) 2007.09.13
TopCoder SRM 364 Div 1  (0) 2007.09.09
TopCoder SRM 363 Div 2 (완료)  (0) 2007.08.12
TopCoder SRM 362 Div 2  (0) 2007.08.08
탑코더(TopCoder) 시작하기..  (0) 2007.08.07

to Top