欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
经典的递归问题,递归+回溯解决。
注意代码中select_combination()的应用
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
// POJ 2245
// Tanky Woo
// www.wutianqi.com
#include<iostream>
#include<algorithm>
using namespace std;
int num[14];
int lotto[14];
int n,cnt;
void select_combination(int current,int p)//递归填充数并打
印组合,相当于DFS过程
{
int i;
if(6 == current)
{
for(i = 0; i < 6; ++i)
printf("%d ", lotto[i]);
printf("\n");
}
else
{
for(i = p; i < n; ++i)
{
lotto[current] = num[i];
select_combination(current+1,
i+1);
}
}
}
// www.wutianqi.com
int main()
{ [...]
文章来源:
http://www.wutianqi.com/?p=287
posted @
2010-07-08 18:33 Tanky Woo 阅读(136) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
经典的递归问题,递归+回溯解决。
注意代码中select_combination()的应用
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
// POJ 2245
// Tanky Woo
// www.wutianqi.com
#include<iostream>
#include<algorithm>
using namespace std;
int num[14];
int lotto[14];
int n,cnt;
void select_combination(int current,int p)//递归填充数并打
印组合,相当于DFS过程
{
int i;
if(6 == current)
{
for(i = 0; i < 6; ++i)
printf("%d ", lotto[i]);
printf("\n");
}
else
{
for(i = p; i < n; ++i)
{
lotto[current] = num[i];
select_combination(current+1,
i+1);
}
}
}
// www.wutianqi.com
int main()
{ [...]
文章来源:
http://www.wutianqi.com/?p=287
posted @
2010-07-08 18:33 Tanky Woo 阅读(77) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
很经典的递归!
把握前序,中序,后序的特点。
前序的第一个元素是树的根,在相应中序中根以左是左子树,根以右是右子树。
注意考虑 n == 1和 n == 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
57
58
59
60
61
62
63
64
65
// POJ 2255 Tree Recovery
// Tanky Woo
// Memory: 180K Time: 0MS
// Language: C++ Result: Accepted
#include <iostream>
#include <string>
using namespace std;
//定义前序,中序,后序序列
string preord, inord, postord;
void find_postord(string preord, string inord);
// Blog:www.wutianqi.com
int main()
{
while(cin >> preord >> inord)
{
find_postord(preord, inord);
cout << endl;
}
return 0;
}
//找到ch在inord中的位置,未找到返回-1
int find_root(string inord, char ch)
{
int i;
for(i = 0; [...]
文章来源:
http://www.wutianqi.com/?p=285
posted @
2010-07-08 18:27 Tanky Woo 阅读(54) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
很经典的递归!
把握前序,中序,后序的特点。
前序的第一个元素是树的根,在相应中序中根以左是左子树,根以右是右子树。
注意考虑 n == 1和 n == 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
57
58
59
60
61
62
63
64
65
// POJ 2255 Tree Recovery
// Tanky Woo
// Memory: 180K Time: 0MS
// Language: C++ Result: Accepted
#include <iostream>
#include <string>
using namespace std;
//定义前序,中序,后序序列
string preord, inord, postord;
void find_postord(string preord, string inord);
// Blog:www.wutianqi.com
int main()
{
while(cin >> preord >> inord)
{
find_postord(preord, inord);
cout << endl;
}
return 0;
}
//找到ch在inord中的位置,未找到返回-1
int find_root(string inord, char ch)
{
int i;
for(i = 0; [...]
文章来源:
http://www.wutianqi.com/?p=285
posted @
2010-07-08 18:27 Tanky Woo 阅读(146) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
谁说这道题简单?是水题?
又让我郁闷了。
思路:枚举,BFS,位操作
分析:要求输入一个4*4的棋盘,考虑状态是否全为黑或者全为白,状态共有2^16种,联系棋盘是4*4,可以想到用位来压缩状态。
bwwb
bbwb
bwwb
bwww
可以表示为:0001|1001|1011|1001
这里对位操作介绍下:
id ^= (1 << i) //对整数id转换成二进制后的第i位取反
其次,这里是广搜,用队列表示。
queue的front(), pop(), push()要掌握。
题目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1753
Memory: 504K
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
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// POJ 1753
// Author: Tanky Woo
#include <iostream>
#include <queue>
using namespace std;
const int MAX_STATE = 65536;
const int ALL_BLACK = 65535;
const int ALL_WHITE = 0;
const int SIZE = 4;
// www.wutianqi.com
int convert(char c)
{
if(c == 'b')
return 1;
else
return 0;
}
int FlipPiece(int state_id, int pos)
{
state_id ^= (1 << pos);
//up
if(pos >= 4)
state_id [...]
文章来源:
http://www.wutianqi.com/?p=280
posted @
2010-07-06 18:37 Tanky Woo 阅读(1118) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
谁说这道题简单?是水题?
又让我郁闷了。
思路:枚举,BFS,位操作
分析:要求输入一个4*4的棋盘,考虑状态是否全为黑或者全为白,状态共有2^16种,联系棋盘是4*4,可以想到用位来压缩状态。
bwwb
bbwb
bwwb
bwww
可以表示为:0001|1001|1011|1001
这里对位操作介绍下:
id ^= (1 << i) //对整数id转换成二进制后的第i位取反
其次,这里是广搜,用队列表示。
queue的front(), pop(), push()要掌握。
题目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1753
Memory: 504K
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
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// POJ 1753
// Author: Tanky Woo
#include <iostream>
#include <queue>
using namespace std;
const int MAX_STATE = 65536;
const int ALL_BLACK = 65535;
const int ALL_WHITE = 0;
const int SIZE = 4;
// www.wutianqi.com
int convert(char c)
{
if(c == 'b')
return 1;
else
return 0;
}
int FlipPiece(int state_id, int pos)
{
state_id ^= (1 << pos);
//up
if(pos >= 4)
state_id [...]
文章来源:
http://www.wutianqi.com/?p=280
posted @
2010-07-06 18:37 Tanky Woo 阅读(105) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
今天论坛的ambition发了一个帖子:
http://www.cppleyuan.com/redirect.php?tid=1171&goto=lastpost#lastpost
看了下,感觉题目很不错,ambition的思路也很好。
涉及到了m^n,我感觉经常就是与log一起使用。
把题目做了下,ambition的代码已经足够了,贴出来分享:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,m;
double g;
double h;
for(cin>>n;n>0;n--)
{
cin>>m;
g=m*log10((double)m);
[...]
文章来源:
http://www.wutianqi.com/?p=278
posted @
2010-07-05 23:17 Tanky Woo 阅读(130) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
今天论坛的ambition发了一个帖子:
http://www.cppleyuan.com/redirect.php?tid=1171&goto=lastpost#lastpost
看了下,感觉题目很不错,ambition的思路也很好。
涉及到了m^n,我感觉经常就是与log一起使用。
把题目做了下,ambition的代码已经足够了,贴出来分享:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,m;
double g;
double h;
for(cin>>n;n>0;n--)
{
cin>>m;
g=m*log10((double)m);
[...]
文章来源:
http://www.wutianqi.com/?p=278
posted @
2010-07-05 23:17 Tanky Woo 阅读(120) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
就算是第一题又如何,POJ 1000,这是每个ACM爱好者的第一次。。。。
今天打击很大,三个小时2题都没做出来,感觉以前做的太混乱了,
今天重新申请了一个号,开始新的旅程,第一站当然就是这一题。
大家可以去看看我的代码情况,我账号:200841193
从今天开始系统的开始做了。加油!Tanky Woo!
题目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1000
1
2
3
4
5
6
7
8
9
10
11
12
//Author: Tanky Woo
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
欢迎您来到C++奋斗乐园,原创文章,转载请注明: 转载自Tanky Woo 的程序人生
文章标题: POJ 1000 A+B Problem
本文链接地址: http://www.wutianqi.com/?p=276
文章来源:
http://www.wutianqi.com/?p=276
posted @
2010-07-05 21:14 Tanky Woo 阅读(112) |
评论 (0) |
编辑 收藏
欢迎您来到Tanky Woo的博客:
我们的【C++奋斗乐园】
C++/算法网站:www.cpply.com
C++/算法论坛:www.cppleyuan.com
QQ群:①群:19333724 ②群:23840480 ③群:17314377 ④群:23829384
就算是第一题又如何,POJ 1000,这是每个ACM爱好者的第一次。。。。
今天打击很大,三个小时2题都没做出来,感觉以前做的太混乱了,
今天重新申请了一个号,开始新的旅程,第一站当然就是这一题。
大家可以去看看我的代码情况,我账号:200841193
从今天开始系统的开始做了。加油!Tanky Woo!
题目地址:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1000
1
2
3
4
5
6
7
8
9
10
11
12
//Author: Tanky Woo
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
欢迎您来到C++奋斗乐园,原创文章,转载请注明: 转载自Tanky Woo 的程序人生
文章标题: POJ 1000 A+B Problem
本文链接地址: http://www.wutianqi.com/?p=276
文章来源:
http://www.wutianqi.com/?p=276
posted @
2010-07-05 21:14 Tanky Woo 阅读(187) |
评论 (1) |
编辑 收藏