无聊题.调节心情.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
#include <iomanip>
3
using namespace std;
4![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
5
const float PI = 3.1415927;
6
const int FEET_MILE = 5280;
7
const int INCH_FOOT = 12;
8
const int MINUTES_HOUR = 60;
9
const int SECONDS_MINUTE = 60;
10
const float METERS_FURLONG = 201.168f;
11![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
12
int _tmain(int argc, _TCHAR* argv[])
13![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
14
float diameter, time;
15
int revolutions;
16
17
int index = 1;
18![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
19
while(cin >> diameter >> revolutions >> time && revolutions != 0)
20![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
21
float mile = 2 * PI * diameter / 2 * revolutions / INCH_FOOT / FEET_MILE;
22
23
float MPH = mile / (time / SECONDS_MINUTE / MINUTES_HOUR);
24![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
25
cout << "Trip #" << index << ": " << fixed << setprecision(2) << mile << " " << MPH << endl;
26
++index;
27
}
28![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
29
return 0;
30
}
posted @
2009-04-10 22:42 肖羽思 阅读(595) |
评论 (0) |
编辑 收藏
Prim算法.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
using namespace std;
3![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
4
const int N = 28;
5
const int UNLINK = 0x7fffffff;
6
int g[N][N];
7
int weight[N];
8
bool visited[N];
9![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
10
int _tmain(int argc, _TCHAR* argv[])
11![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
12
int vertex, t_vertex;
13
while(cin >> t_vertex && t_vertex != 0)
14![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
15
vertex = t_vertex;
16
memset(visited, false, sizeof(visited));
17![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
18
for(int i = 0; i < vertex; ++i)
19![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
20
weight[i] = UNLINK;
21
for(int j = 0; j < vertex; ++j)
22![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
23
g[i][j] = UNLINK;
24
}
25
}
26![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
27
char v;
28
int num, t_num;
29
while(--t_vertex)
30![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
31
cin >> v >> t_num;
32
num = t_num;
33![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
34
char vl;
35
int edge;
36
while(t_num--)
37![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
38
cin >> vl >> edge;
39
g[(int)(v - 'A')][(int)(vl - 'A')] = edge;
40
g[(int)(vl - 'A')][(int)(v - 'A')] = edge;
41
}
42
}
43![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
44
for(int i = 0; i < vertex; ++i)
45![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
46
weight[i] = g[0][i];
47
}
48
visited[0] = true;
49
int min(UNLINK), nearest(-1), total_weight(0);
50![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
51
for(int i = 0; i < vertex; ++i)
52![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
53
min = UNLINK;
54
nearest = -1;
55
for(int j = 0; j < vertex; ++j)
56![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
57
if(min > weight[j] && !visited[j])
58![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
59
min = weight[j];
60
nearest = j;
61
}
62
}
63
visited[nearest] = true;
64
total_weight += weight[nearest];
65![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
66
for(int j = 0; j < vertex; ++j)
67![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
68
if(g[nearest][j] < weight[j])
69![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
70
weight[j] = g[nearest][j];
71
}
72
}
73
}
74![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
75
cout << total_weight << endl;
76
}
77
return 0;
78
}
79![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
80![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-10 22:41 肖羽思 阅读(804) |
评论 (0) |
编辑 收藏
简单题.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
using namespace std;
3![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
4
int _tmain(int argc, _TCHAR* argv[])
5![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
6
int cases;
7
cin >> cases;
8![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
9
while(cases--)
10![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
11
int n;
12
cin >> n;
13![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
14
int * cells = new int[n + 1];
15
for(int i = 0; i <= n; ++i)
16![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
17
cells[i] = 0;
18
}
19![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
20
for(int i = 2; i <= n; ++i)
21![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
22
if(i > n / 2)
23
break;
24
for(int j = i; j <= n; j += i)
25![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
26
++cells[j];
27
}
28
}
29
30
int result = 0;
31![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
32
for(int i = 1; i <= n / 2; ++i)
33![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
34
if((cells[i] & 1) == 0)
35
++result;
36
}
37![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
38
for(int i = n / 2 + 1; i <= n; ++i)
39![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
40
if((cells[i] & 1) == 1)
41
++result;
42
}
43
cout << result << endl;
44
delete cells;
45
}
46
return 0;
47
}
48![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
49![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-10 22:38 肖羽思 阅读(616) |
评论 (0) |
编辑 收藏
经典题.双重BFS.
基本思路如下:
1.第一重BFS根据箱子可移动的位置进行BFS.
2.第二重将箱子目前所在的位置设为不可达,根据箱子所在的位置得出人所应该在的位置,根据此位置对人进行了BFS.
即可.
posted @
2009-04-10 22:36 肖羽思 阅读(463) |
评论 (0) |
编辑 收藏
经典题.双重BFS.
基本思路如下:
1.第一重BFS根据箱子可移动的位置进行BFS.
2.第二重将箱子目前所在的位置设为不可达,根据箱子所在的位置得出人所应该在的位置,根据此位置对人进行了BFS.
即可.
posted @
2009-04-10 22:33 肖羽思 阅读(523) |
评论 (0) |
编辑 收藏
简单题.面试的时候常考.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
#include <string>
3
using namespace std;
4![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
5
int _tmain(int argc, _TCHAR* argv[])
6![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
7
int t;
8
cin >> t;
9
for(int g = 0; g < t; ++g)
10![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
11
if(g != 0)
12
cout << endl;
13![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
14
int n;
15
cin >> n;
16
getchar();
17![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
18
string res, r_res;
19
20
for(int i = 0; i < n; ++i)
21![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
22
getline(cin, res);
23
int length = res.length();
24
int last_space = -1;
25![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
26
for(int i = 0; i <= length; ++i)
27![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
28
if(i == length || res.at(i) == ' ')
29![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
30
for(int j = i - 1; j > last_space; --j)
31![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32
cout << res.at(j);
33
}
34
if(i != length)
35
cout << " ";
36
last_space = i;
37
}
38
}
39
cout << endl;
40
}
41
}
42
return 0;
43
}
44![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
45![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-10 22:24 肖羽思 阅读(795) |
评论 (0) |
编辑 收藏
无聊题.缓解心情.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
#include <iomanip>
3
using namespace std;
4![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
5
const int N = 9;
6![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
7
int factorial(int n)
8![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
9
if(n == 0)
10
return 1;
11
return n * factorial(n - 1);
12
}
13![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
14
int _tmain(int argc, _TCHAR* argv[])
15![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
16
cout << "n e" << endl;
17
cout << "- -----------" << endl;
18
19
double result = 0.0f, temp;
20![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
21
for(int i = 0; i <= N; ++i)
22![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
23
result = 0.0f;
24![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
25
for(int j = i; j > -1; --j)
26![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
result += 1.0 / factorial(j);
28
}
29![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
30
if(i > 2)
31![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32
printf("%d %.9f\n", i, result);
33
}
34
else
35![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
36
cout << i << " " << result << endl;
37
}
38
}
39
return 0;
40
}
posted @
2009-04-10 22:21 肖羽思 阅读(569) |
评论 (1) |
编辑 收藏
无聊题.用于缓解心情.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
#include <iomanip>
3
using namespace std;
4![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
5
const int N = 9;
6![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
7
int factorial(int n)
8![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
9
if(n == 0)
10
return 1;
11
return n * factorial(n - 1);
12
}
13![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
14
int _tmain(int argc, _TCHAR* argv[])
15![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
16
cout << "n e" << endl;
17
cout << "- -----------" << endl;
18
19
double result = 0.0f, temp;
20![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
21
for(int i = 0; i <= N; ++i)
22![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
23
result = 0.0f;
24![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
25
for(int j = i; j > -1; --j)
26![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
result += 1.0 / factorial(j);
28
}
29![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
30
if(i > 2)
31![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32
printf("%d %.9f\n", i, result);
33
}
34
else
35![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
36
cout << i << " " << result << endl;
37
}
38
}
39
return 0;
40
}
posted @
2009-04-10 22:17 肖羽思 阅读(440) |
评论 (0) |
编辑 收藏
利用
大数类简单解决的简单题.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include "BigInteger.h"
2
#include <iostream>
3
#include <vector>
4
#include <string>
5
#include <cmath>
6
#include <iomanip>
7
using namespace std;
8![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
9
bool IsCyclic(string input, string result)
10![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
11
int length = input.length();
12![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int flag[100] =
{0};
13
for(int i = 0; i < length; ++i)
14![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
15
for(int j = 0; j < length; ++j)
16![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
17
if(!flag[j] && input.at(i) == result.at(j))
18![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
19
flag[j] = 1;
20
break;
21
}
22
}
23
}
24![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
25
for(int i = 0; i < length; ++i)
26![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
if(!flag[i])
28
return false;
29
}
30
return true;
31
}
32![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
33![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
34
int _tmain(int argc, _TCHAR* argv[])
35![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
36
string input;
37
while(cin >> input)
38![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
39
int length = input.length();
40
BigInteger integer(input);
41
BigInteger result(1);
42
bool isCyclic = true;
43
for(int i = 2; i < length + 1; ++i)
44![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
45
result = integer * BigInteger(i);
46
if(!IsCyclic(input, result.GetString()))
47![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
48
isCyclic = false;
49
break;
50
}
51
}
52
if(isCyclic)
53
cout << input << " is cyclic" << endl;
54
else
55
cout << input << " is not cyclic" << endl;
56
}
57
return 0;
58
}
59![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-10 22:15 肖羽思 阅读(699) |
评论 (1) |
编辑 收藏
简单模拟题.
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
#include <iostream>
2
using namespace std;
3![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
4
int _tmain(int argc, _TCHAR* argv[])
5![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
6
int n;
7![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
8
bool reInput = false;
9![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
10
while(cin >> n && n != 0)
11![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
12
if(reInput)
13
cout << endl;
14![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
15
reInput = true;
16![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
17
int *A = new int[n];
18
int *B = new int[n];
19![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
20
for(int i = 0; i < n; ++i)
21![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
22
cin >> A[i];
23
}
24![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
25
for(int i = 0; i < n; ++i)
26![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
cin >> B[i];
28
}
29![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
30
int score_A = 0;
31
int score_B = 0;
32![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
33
for(int i = 0; i < n; ++i)
34![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
35
if(A[i] > B[i])
36![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
37
if(A[i] - B[i] == 1)
38![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
39
if(A[i] == 2)
40![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
41
score_B += 6;
42
}
43
else
44![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
45
score_B += A[i];
46
score_B += B[i];
47
}
48
}
49
else
50![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
51
score_A += A[i];
52
}
53
}
54
else if(A[i] < B[i])
55![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
56
if(B[i] - A[i] == 1)
57![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
58
if(B[i] == 2)
59![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
60
score_A += 6;
61
}
62
else
63![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
64
score_A += A[i];
65
score_A += B[i];
66
}
67
}
68
else
69![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
70
score_B += B[i];
71
}
72
}
73
}
74![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
75
cout << "A has " << score_A << " points. B has " << score_B << " points." << endl;
76
77
delete A, B;
78
}
79![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
80
return 0;
81
}
82![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
83![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-10 22:10 肖羽思 阅读(466) |
评论 (0) |
编辑 收藏