지난주 토요일 새벽에 열렸던 매치.. 
250 문제부터 빡센게 나오면서 포기하고 그냥 잤다.. -_-;;
Yellow 겨우 올려놨더니.. 역시.. 떨어지는건 한순간이군.. ㅠ_ㅠ;;
요즘은 SRM 이 너무 어렵다.. 






Level1 - FoxMakingDice

주사위에 나올 수 있는 숫자는 1~N 이라고 하고 서로 반대되는 면의 합은 K 이상이 되도록 만들 수 있는 서로 다른 주사위 개수 구하고.. 단, 모든면은 다 다른 숫자가 적혀있어야 한다.. rotate 해서 같은 모양이 되면 같은 주사위로 취급

a + b >= K 가 되는 서로다른 pair (a, b) 의 개수를 구한다.. 그게 n 이라고 한다면
이런 pair 가 3개가 있어야 하므로.. 답은 2 * choose(n, 3) 이 된다
2 를 곱하는 이유는.. (a, b), (c, d), (e, f) 를 rotate 해서 (a, b), (c, d), (f, e) 를 만들 수 없어서 인가..?

  1 #include <iostream>
  2 #include <cstdio>
  3 #include <algorithm>
  4 #include <vector>
  5 #include <string>
  6 using namespace std;
  7 //#define min(x, y) ((x) > (y) ? (y) : (x))
  8 //#define max(x, y) ((x) > (y) ? (x) : (y))
  9 //#define INF 999999999
 10 //#define EPS 1e-14
 11
 12 class FoxMakingDice {
 13 public:
 14
 15 long long theCount(int N, int K)
 16 {
 17     int i;
 18     long long a, b;
 19     long long cnt, res;
 20     res = 0;
 21     for (i = K; i <= N+N; i++) {
 22         cnt = 0;
 23         for (a = 1; a <= N; a++) {
 24             b = i - a;
 25             if (b > N || b <= a)
 26                 continue;
 27             cnt++;
 28         }
 29         res += cnt * (cnt-1) * (cnt-2) / 3;
 30     }
 31     return res;
 32 }
 33
 34 };



Level2 - PrefixTree


to be updated..



Level3 - FoxCardGame


to be updated..


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

SRM 504 - unrated event  (0) 2011.04.27
SRM 503 흑흑 ㅠ_ㅠ;;  (0) 2011.04.18
SRM 501  (0) 2011.04.01
SRM 498 - WTF!!  (0) 2011.02.27
SRM 496  (2) 2011.02.02
SRM 490 - Yellow 1차 방어전 성공..  (0) 2010.12.09
SRM 483 - 처음으로 Petr 이겨본 매치..~  (0) 2010.09.26
SRM 482  (0) 2010.09.16
SRM 479 - 광복절 새벽에 삽질..  (0) 2010.08.16
SRM 478  (2) 2010.08.08

to Top