## TopCoder SRM 370 Div2

Problem Solving/TopCoder logs 2007. 10. 14. 00:19

다음부터 열심히 해야지.. -_- 근데.. 과연 잘할수있을까..?

[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] DrawingMarbles input으로 각 색깔에대한 구슬의 개수가 주어지고, 구슬을 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 };

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 |