TopCoder SRM 428 Div 1
Problem Solving/TopCoder logs 2008. 12. 3. 21:13
어제 9시에 열린 매치.. 이번 매치에서는 문제가 너무 구리게 나온 덕분에(?) 역대 최고의 성적을 올렸다.. -_-;; 250점은 너무 쉬운 문제가 나왔고.. 500, 1000은 상당히 어려웠다.. 덕분에 많은 고랩들이 250점짜리만 풀고 줄줄이 삽질하는 바람에.. 별볼일없는 내가 그냥 평소대로 했더니 높은 등수가 되었다.. -_-;; 하긴 이런 이상한 매치도 가끔 있어야 나도 먹고살지..;;
덕분에 rating이 무려 176점이나 올랐다.. 3연속 상승인데.. 이제 좀 떨어질때가 됐군.. ㅋㅋ 볼라도 무려 500가까이 되고.. 아무래도 다음 매치에서는 몸사려야할듯..?
Level1 - TheLuckyString
어떤 단어가 모든 이웃하는 문자가 모두 같지 않으면 lucky 하다고 할때, 주어진 문자들로 만들 수 있는 lucky한 단어의 개수 세기..
letter의 개수가 최대 10이기때문에 그냥 next_permutation으로 다 돌렸다..
나름 문제도 빨리 이해하고 잽싸게 코딩해서 245점에 서밋했는데도 방에서 5등.. -_-;;
문제가 아무리 쉽다고는 하지만.. 도대체 249점을 맞는 사람은 뭐지..;;
c++ string 사용법을 몰라서 항상 char 배열로 바꾼다음에 코딩하는데..
이거랑 sorting에서 시간을 좀 낭비한 것 같다..
Level2 - TheLongPalindrome
n과 k가 주어질 때, 길이 n 이하의 문자열 중에 k개 이하의 문자만 사용하여 만들 수 있는 palindrome의 개수 구하기..
to be updated..
Level3 - TheStringGame
to be updated..
덕분에 rating이 무려 176점이나 올랐다.. 3연속 상승인데.. 이제 좀 떨어질때가 됐군.. ㅋㅋ 볼라도 무려 500가까이 되고.. 아무래도 다음 매치에서는 몸사려야할듯..?
Level1 - TheLuckyString
어떤 단어가 모든 이웃하는 문자가 모두 같지 않으면 lucky 하다고 할때, 주어진 문자들로 만들 수 있는 lucky한 단어의 개수 세기..
letter의 개수가 최대 10이기때문에 그냥 next_permutation으로 다 돌렸다..
나름 문제도 빨리 이해하고 잽싸게 코딩해서 245점에 서밋했는데도 방에서 5등.. -_-;;
문제가 아무리 쉽다고는 하지만.. 도대체 249점을 맞는 사람은 뭐지..;;
c++ string 사용법을 몰라서 항상 char 배열로 바꾼다음에 코딩하는데..
이거랑 sorting에서 시간을 좀 낭비한 것 같다..
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 using namespace std;
7
8 int comp(const void* x, const void* y)
9 {
10 char* a = (char*)x;
11 char* b = (char*)y;
12 return *a - *b;
13 }
14
15 class TheLuckyString {
16 public:
17
18 int count(string s)
19 {
20 int len, cnt, i;
21 char buf[100];
22 strcpy(buf, s.c_str());
23 len = strlen(buf);
24 qsort(buf, len, sizeof(char), comp);
25 cnt = 0;
26 do {
27 for (i = 1; i < len ;i++) {
28 if (buf[i-1] == buf[i])
29 break;
30 }
31 if (i == len)
32 cnt++;
33 } while (next_permutation(buf, buf+len));
34 return cnt;
35 }
36
37 };
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 using namespace std;
7
8 int comp(const void* x, const void* y)
9 {
10 char* a = (char*)x;
11 char* b = (char*)y;
12 return *a - *b;
13 }
14
15 class TheLuckyString {
16 public:
17
18 int count(string s)
19 {
20 int len, cnt, i;
21 char buf[100];
22 strcpy(buf, s.c_str());
23 len = strlen(buf);
24 qsort(buf, len, sizeof(char), comp);
25 cnt = 0;
26 do {
27 for (i = 1; i < len ;i++) {
28 if (buf[i-1] == buf[i])
29 break;
30 }
31 if (i == len)
32 cnt++;
33 } while (next_permutation(buf, buf+len));
34 return cnt;
35 }
36
37 };
Level2 - TheLongPalindrome
n과 k가 주어질 때, 길이 n 이하의 문자열 중에 k개 이하의 문자만 사용하여 만들 수 있는 palindrome의 개수 구하기..
to be updated..
Level3 - TheStringGame
to be updated..
'Problem Solving > TopCoder logs' 카테고리의 다른 글
TCO09 Qual 3 (완료) (0) | 2009.03.05 |
---|---|
TCO09 Qual 2 (0) | 2009.03.01 |
TCO09 Qual 1 (0) | 2009.02.25 |
TopCoder SRM 434 Div 1 (0) | 2009.02.10 |
TopCoder SRM 432 Div 1 (0) | 2009.01.07 |
탑코더 스름 426 디비젼 1 (0) | 2008.11.25 |
TopCoder SRM 425 Div 2 (완료) (0) | 2008.11.13 |
TopCoder SRM 422 Div 1 (4) | 2008.10.19 |
TopCoder SRM 421 Div 1 (0) | 2008.10.12 |
TopCoder SRM 420 Div 2 (0) | 2008.10.03 |