歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
水題。題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1020
有的朋友用棧做的,我沒去試。
我是直接計算每個連續的長度,數字記錄到num[]數組里,字母記錄到b數組里。
然后輸出,數字為1則不輸出。
代碼:
內存:222k? 時間:0MS
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// HDOJ 1020
// Author: Tanky Woo
#include <iostream>
using namespace std;
char a[10001]; //記錄輸入的字符串
char b[5000]; //記錄每組連續字符的個數
int num[5000]; //連續字符
int i, j;
int nCases; //數據組數
int cnt,tot = 0; //cnt記錄當前同一個字母的個數, tot記錄總多少不相同連續的字母(表達欠缺。。)
// www.wutianqi.com
int main()
{
scanf("%d", &nCases);
char c;
while(nCases--)
{
tot = 0;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(num, 0, sizeof(num));
getchar();
scanf("%s", a);
for(i = 0; i < strlen(a); [...]
文章來源:
http://www.wutianqi.com/?p=303
posted @
2010-07-10 21:40 Tanky Woo 閱讀(142) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
水題。題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1020
有的朋友用棧做的,我沒去試。
我是直接計算每個連續的長度,數字記錄到num[]數組里,字母記錄到b數組里。
然后輸出,數字為1則不輸出。
代碼:
內存:222k? 時間:0MS
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// HDOJ 1020
// Author: Tanky Woo
#include <iostream>
using namespace std;
char a[10001]; //記錄輸入的字符串
char b[5000]; //記錄每組連續字符的個數
int num[5000]; //連續字符
int i, j;
int nCases; //數據組數
int cnt,tot = 0; //cnt記錄當前同一個字母的個數, tot記錄總多少不相同連續的字母(表達欠缺。。)
// www.wutianqi.com
int main()
{
scanf("%d", &nCases);
char c;
while(nCases--)
{
tot = 0;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(num, 0, sizeof(num));
getchar();
scanf("%s", a);
for(i = 0; i < strlen(a); [...]
文章來源:
http://www.wutianqi.com/?p=303
posted @
2010-07-10 21:40 Tanky Woo 閱讀(150) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
好題,棧入門理解的經典題目。
題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1870
看到題目,可以聯想到學習數據結構時對表達式的求值,此題相對要簡單多了。
找出關鍵點:(((((B)())))())? ->? ()這樣一對算空盒子
思想:利用棧除去其中的空盒子,剩下的就是從最外層直接到禮物的層數。(測棧中剩余的”(“或者”)”即可)
操作時,當讀到左括號時,入棧;讀到B(禮物)的時候,也入棧,標記該盒子非空;讀到右括號的時候,判斷棧頂元素是不是左括號,如果是說明這是一個空盒,棧頂元素退出即可~如果不是,入棧。最后,統計棧中左或右括號的個數即可得到答案。
代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// HDOJ 1870
// Author: Tanky Woo
#include <iostream>
#include <stack>
using namespace std;
char cpply[1001];
stack<char> t;
// www.wutianqi.com
int main()
{
while(gets(cpply))
{
while(!(t.empty())) //若t中還有元素,則清空
t.pop();
[...]
文章來源:
http://www.wutianqi.com/?p=301
posted @
2010-07-10 16:38 Tanky Woo 閱讀(193) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
好題,棧入門理解的經典題目。
題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1870
看到題目,可以聯想到學習數據結構時對表達式的求值,此題相對要簡單多了。
找出關鍵點:(((((B)())))())? ->? ()這樣一對算空盒子
思想:利用棧除去其中的空盒子,剩下的就是從最外層直接到禮物的層數。(測棧中剩余的”(“或者”)”即可)
操作時,當讀到左括號時,入棧;讀到B(禮物)的時候,也入棧,標記該盒子非空;讀到右括號的時候,判斷棧頂元素是不是左括號,如果是說明這是一個空盒,棧頂元素退出即可~如果不是,入棧。最后,統計棧中左或右括號的個數即可得到答案。
代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// HDOJ 1870
// Author: Tanky Woo
#include <iostream>
#include <stack>
using namespace std;
char cpply[1001];
stack<char> t;
// www.wutianqi.com
int main()
{
while(gets(cpply))
{
while(!(t.empty())) //若t中還有元素,則清空
t.pop();
[...]
文章來源:
http://www.wutianqi.com/?p=301
posted @
2010-07-10 16:38 Tanky Woo 閱讀(199) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
題目地址:
http://poj.grids.cn/problem/1833/
此題有兩種方法:
方法一:利用STL里的next_permutation()函數,當然,這樣題就水了。
方法二:模擬,找出數列變化的特點。排列過程待補。。。大家記得提醒我。
直接發代碼了。
方法一:(STL)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Grid 1833
// Author: Tanky Woo
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 1034
int ans[MAX];
// www.wutianqi.com
int main()
{
int nCases;
int num, k, i, j;
scanf("%d", &nCases);
while(nCases--)
{
scanf("%d %d", &num, &k);
for(i = 1; i <= num; ++i)
scanf("%d", &ans[i]);
for(i = 0; i < k; ++i)
next_permutation(ans+1, ans+num+1);
for(j = 1; j <= num; ++j)
printf("%d ", ans[j]);
printf("\n");
}
return 0;
}
方法二:(模擬)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Grid 1833
// Author: Tanky [...]
文章來源:
http://www.wutianqi.com/?p=298
posted @
2010-07-09 20:45 Tanky Woo 閱讀(200) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
題目地址:
http://poj.grids.cn/problem/1833/
此題有兩種方法:
方法一:利用STL里的next_permutation()函數,當然,這樣題就水了。
方法二:模擬,找出數列變化的特點。排列過程待補。。。大家記得提醒我。
直接發代碼了。
方法一:(STL)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Grid 1833
// Author: Tanky Woo
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 1034
int ans[MAX];
// www.wutianqi.com
int main()
{
int nCases;
int num, k, i, j;
scanf("%d", &nCases);
while(nCases--)
{
scanf("%d %d", &num, &k);
for(i = 1; i <= num; ++i)
scanf("%d", &ans[i]);
for(i = 0; i < k; ++i)
next_permutation(ans+1, ans+num+1);
for(j = 1; j <= num; ++j)
printf("%d ", ans[j]);
printf("\n");
}
return 0;
}
方法二:(模擬)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Grid 1833
// Author: Tanky [...]
文章來源:
http://www.wutianqi.com/?p=298
posted @
2010-07-09 20:45 Tanky Woo 閱讀(178) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
比較經典的模擬題,注意對細節的考慮,以及對過程的模擬。
內存: 1848kB
時間: 16ms
語言: C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Grid 2746 Joseph
// Author: Tanky Woo
#include <iostream>
#define MAX 301
int aLoop[MAX];
// www.wutianqi.com
int main()
{
int n, m;
int i;
while(scanf("%d %d", &n, &m) && n && m)
{
for(i = 0; i < n; i++)
aLoop[i] = i+1;
int nPtr = 0;
for(i = 0; i < n; i++)
{
int nCnt = 0;
while(nCnt < m)
{
while(aLoop[nPtr] == 0)
nPtr = [...]
文章來源:
http://www.wutianqi.com/?p=292
posted @
2010-07-09 17:03 Tanky Woo 閱讀(160) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
比較經典的模擬題,注意對細節的考慮,以及對過程的模擬。
內存: 1848kB
時間: 16ms
語言: C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Grid 2746 Joseph
// Author: Tanky Woo
#include <iostream>
#define MAX 301
int aLoop[MAX];
// www.wutianqi.com
int main()
{
int n, m;
int i;
while(scanf("%d %d", &n, &m) && n && m)
{
for(i = 0; i < n; i++)
aLoop[i] = i+1;
int nPtr = 0;
for(i = 0; i < n; i++)
{
int nCnt = 0;
while(nCnt < m)
{
while(aLoop[nPtr] == 0)
nPtr = [...]
文章來源:
http://www.wutianqi.com/?p=292
posted @
2010-07-09 17:03 Tanky Woo 閱讀(174) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
題意,如果數字大于10,則向最近的十位數四舍五入,
若結果大于100,接向最近的百位四舍五入。。。
號稱應該是用遞歸做的,但是題目水了,所以用水方法就可以做出來了。
注意對問題的分析。
題目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=3077
Memory: 144K Time: 16MS
Language: C++ Result: Accepted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
int n, cnt; // n記錄要輸入幾個數, cnt記錄要輸出幾個0
int x; //x表示輸入的數
int temp; //temp用來存儲最后一位數字
int main()
{
scanf("%d", &n);
while(n--)
{
cnt = 0;
scanf("%d", &x);
while(x >= 10)
{
temp = x % 10;
x /= 10;
cnt ++;
if(temp >= 5)
x++;
}
printf("%d", x);
for(int i = 0; i < cnt; i++)
printf("0");
printf("\n");
}
return 0;
}
歡迎您來到C++奮斗樂園,原創文章,轉載請注明: 轉載自Tanky Woo 的程序人生
文章標題: [...]
文章來源:
http://www.wutianqi.com/?p=289
posted @
2010-07-08 18:37 Tanky Woo 閱讀(130) |
評論 (0) |
編輯 收藏
歡迎您來到Tanky Woo的博客:
我們的【C++奮斗樂園】
C++/算法網站:www.cpply.com
C++/算法論壇:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
題意,如果數字大于10,則向最近的十位數四舍五入,
若結果大于100,接向最近的百位四舍五入。。。
號稱應該是用遞歸做的,但是題目水了,所以用水方法就可以做出來了。
注意對問題的分析。
題目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=3077
Memory: 144K Time: 16MS
Language: C++ Result: Accepted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
int n, cnt; // n記錄要輸入幾個數, cnt記錄要輸出幾個0
int x; //x表示輸入的數
int temp; //temp用來存儲最后一位數字
int main()
{
scanf("%d", &n);
while(n--)
{
cnt = 0;
scanf("%d", &x);
while(x >= 10)
{
temp = x % 10;
x /= 10;
cnt ++;
if(temp >= 5)
x++;
}
printf("%d", x);
for(int i = 0; i < cnt; i++)
printf("0");
printf("\n");
}
return 0;
}
歡迎您來到C++奮斗樂園,原創文章,轉載請注明: 轉載自Tanky Woo 的程序人生
文章標題: [...]
文章來源:
http://www.wutianqi.com/?p=289
posted @
2010-07-08 18:37 Tanky Woo 閱讀(83) |
評論 (0) |
編輯 收藏