사용자 삽입 이미지
다음부터 열심히 해야지.. -_- 근데.. 과연 잘할수있을까..?

[250] Containsers
container와 package가 나온다.. package를 모두 담았을때 container의 낭비되는 양을 구하는 문제.. 단 들어온 순서대로 채워져야한다..


아.. 열라 후루꾸로 풀리는 문제.. [모든 container크기 합 ] -  [모든 package의 합] 이 답이다..
곰곰히 생각해보니 input 조건이 모든 package는 무조건 다 container에 들어간다고 했으니.. 그게 말이된다..
난 앞에서부터 차례로 simulation했는데 그럴필요가 없는것이었다..
그래서 문제 파악을 잘못하고 막 소팅하고 별짓을 다한애들이 운좋게 다 맞은것이었다..
제길! 이런문제 싫어..!!!

      1 #include <iostream>
      2 #include <cstdio>
      3 #include <algorithm>
      4 #include <vector>
      5 #include <string>
      6 using namespace std;
      7
      8 class Containers {
      9 public:
     10
     11 int wastedSpace(vector <int> containers, vector <int> packages)
     12 {
     13     int i, a, b;
     14     int n = containers.size();
     15     int m = packages.size();
     16
     17     a = b = 0;
     18     for (i = 0; i < n; i++)
     19         a += containers[i];
     20     for (i = 0; i < m; i++)
     21         b += packages[i];
     22     return a - b;
     23 }
     24
     25 };




[500] DrawingMarblesinput으로 각 색깔에대한 구슬의 개수가 주어지고, 구슬을 n개 꺼낼 때 모두다 서로 같은 색깔이 확률을 구하는 문제..


단순한 확률문제이다..
첫번째 색깔의 구슬을 다 뽑았을때의 확률 + 두번째 색깔의 구슬을 다 뽑았을때의 확률 + ...
이런식으로 구했다..

      1 #include <iostream>
      2 #include <vector>
      3 #include <algorithm>
      4 using namespace std;
      5
      6 double fun(int k, int n, int cnt)
      7 {
      8     int i;
      9     double p;
     10     p = 1.0;
     11     for (i = 0; i < n; i++) {
     12         p *= (double)(k-i) / (double)(cnt-i);
     13     }
     14     return p;
     15 }
     16
     17 class DrawingMarbles {
     18 public:
     19
     20 double sameColor(vector<int> colors, int n) {
     21     int size;
     22     int i, k, cnt;
     23     double p;
     24     size = colors.size();
     25     cnt = 0;
     26     for (i = 0; i < size; i++) {
     27         cnt += colors[i];
     28     }
     29     p = 0;
     30     for (i = 0; i < size; i++) {
     31         if (colors[i] < n) {
     32             continue;
     33         }
     34         k = colors[i];
     35         p += fun(k, n, cnt);
     36     }
     37     return p;
     38 }
     39
     40 };




[1000] JohnnysPhone
to be updated..

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

TopCoder SRM375 DIV2 (Complete)  (6) 2007.11.11
TopCoder SRM374 DIV2  (3) 2007.11.07
TopCoder SRM 373 Div 2  (0) 2007.10.24
TopCoder SRM 372 Div 2  (8) 2007.10.18
TopCoder SRM 371 Div2 (완료)  (2) 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 366 DIV 1  (2) 2007.09.18
TopCoder SRM 365 Div 1  (0) 2007.09.13

to Top