LevOJ - 第三期

LevOJ平台.sln

P2097 乘法口诀数列

问题描述

解决方法

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 <stdio.h>

int main() {
int ans[100];
int a1,a2,n;
scanf("%d%d%d",&a1,&a2,&n);
ans[0]=a1;
ans[1]=a2;
int j=2;
for(int i=0;i<10;i++){
if (ans[i]*ans[i+1]>9)
{
ans[j]=(ans[i]*ans[i+1])/10;
j++;
ans[j]=(ans[i]*ans[i+1])%10;
j++;
}
else
{
ans[j]=ans[i]*ans[i+1];
j++;
}
}
for(int i=0;i<n;i++){
printf("%d ",ans[i]);
}
printf("\n");
return 0;
}

P2098 试试手气

问题描述

解决方法

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
#include <stdio.h>

int main()
{
int index[6][6] = {0};
int n;
for (int i = 0; i < 6; i++)
{
scanf("%d", &index[0][i]);
}
scanf("%d", &n);
for (int i = 0; i < 6; i++)
{
int temp = 6;
for (int j = 1; j <= 5;)
{
if (temp==index[0][i])
{
temp--;
}
else
{
index[j][i] = temp;
temp--;
j++;
}
}
}
for (int i = 0; i < 6; i++)
{
printf("%d ", index[n][i]);
}
printf("\n");
return 0;
}

P2099 机工士姆斯塔迪奥

问题描述

解决方法

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
#include <stdio.h>

int main() {
int n, m, s, map[100][100]={0};
scanf("%d%d%d", &n, &m, &s);
int rc, ind, cnt=0;
for(int i=0; i<s; i++) {
scanf("%d%d", &rc, &ind);
switch (rc)
{
case 0:
for (int i = 0; i < m; i++)
{
map[ind-1][i] = 1;
}
break;
case 1:
for (int i = 0; i < n; i++)
{
map[i][ind-1] = 1;
}
break;

default:
break;
}
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(map[i][j] == 0) {
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}

P1992 猜帽子游戏

问题描述

输入输出样例

解决方法

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
#include <stdio.h>

int main()
{
int n;
scanf("%d", &n);
int hats[100];
for (int i = 0; i < n; i++)
scanf("%d", &hats[i]);

int k;
scanf("%d", &k);
for (int i = 0; i < k; i++)
{
int guesses[100];
int ycnt = 0, ncnt = 0, hcnt = 0;

for (int j = 0; j < n; j++)
{
scanf("%d", &guesses[j]);
if (guesses[j] != 0)
{
hcnt = 1;
if (guesses[j] == hats[j])
{
ycnt++;
}
else
{
ncnt++;
}
}
}

if (ncnt == 0 && ycnt > 0 && hcnt)
{
printf("Da Jiang!!!\n");
}
else
{
printf("Ai Ya\n");
}
}

return 0;
}

P2023 超人与奥特曼

问题描述

解决方法

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
#include <stdio.h>

enum
{
M = 100
};

int main()
{
int x[M];
int aotoaman = 0, surperman = 0;

int n, k = 0;
scanf("%d", &n);

int l = n - 1;
for (int i = 0; i < n; i++)
{
scanf("%d", &x[i]);
}
while (k != l + 1)
{
if (aotoaman >= surperman)
{
surperman += x[k++];
}
else if (aotoaman < surperman)
{
aotoaman += x[l--];
}
}
printf("%d %d", surperman, aotoaman);

return 0;
}

P1296 分形宇宙

问题描述

解决方法

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
#include <stdio.h>
#include <math.h>

char canvas[10000][10000];
void initCanvas(int size)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
canvas[i][j] = ' ';
}
}
}

void fra(int n, int x, int y)
{
int size = pow(3, n - 2);
if (n == 1)
{
canvas[x][y] = 'X';
return;
}
fra(n - 1, x, y);
fra(n - 1, x + 2 * size, y);
fra(n - 1, x + size, y + size);
fra(n - 1, x, y + 2 * size);
fra(n - 1, x + 2 * size, y + 2 * size);
}

int main()
{
int n;
scanf("%d", &n);
int size = pow(3, n - 1);
initCanvas(size);
fra(n, 0, 0);

for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
printf("%c", canvas[i][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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <stdio.h>

int main()
{
int n;
scanf("%d", &n);

switch (n)
{
case 1:
printf(
"X\n");
break;
case 2:
printf(
"X X\n"
" X \n"
"X X\n");
break;
case 3:
printf(
"X X X X\n"
" X X \n"
"X X X X\n"
" X X \n"
" X \n"
" X X \n"
"X X X X\n"
" X X \n"
"X X X X\n");
break;
case 4:
printf(
"X X X X X X X X\n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
" X X \n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X \n"
" X \n"
" X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
" X X \n"
" X X X X \n"
"X X X X X X X X\n"
" X X X X \n"
"X X X X X X X X\n");
break;
case 5:
printf(
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X \n"
" X \n"
" X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X \n"
" X X X X \n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
" X X X X \n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n"
" X X X X X X X X \n"
"X X X X X X X X X X X X X X X X\n");
break;
default:
break;
}
return 0;
}

P2100 考试座位号

问题描述

解决方法

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
#include <stdio.h>

void printInfo(long long int info[][3], int m, int n)
{
for (int i = 0; i < n; i++)
if (m == (int)info[i][1])
printf("%lld %lld\n", info[i][0], info[i][2]);
}

int main()
{
int n;
scanf("%d", &n);
long long int info[10][3];
for (int i = 0; i < n; i++)
scanf("%lld %lld %lld", &info[i][0], &info[i][1], &info[i][2]);
int m;
scanf("%d", &m);
int query[10];
for (int i = 0; i < m; i++)
scanf("%d", &query[i]);
for (int i = 0; i < m; i++)
printInfo(info, query[i], n);

return 0;
}

P2101 一帮一

问题描述

解决方法

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
#include <stdio.h>

int main()
{
int n;
scanf("%d", &n);
int gender[50];
char name[50][20];
int isUsed[50] = {0};
for (int i = 0; i < n; i++)
{
scanf("%d", &gender[i]);
scanf("%s", name[i]);
}

for (int i = 0; i < n; i++)
{
if (isUsed[i])
{
continue;
}

for (int j = n - 1; j >= 0; j--)
{
if (i != j && !isUsed[j] && gender[i] != gender[j])
{
printf("%s %s\n", name[i], name[j]);
isUsed[i] = 1;
isUsed[j] = 1;
break;
}
}
}

return 0;
}

P1325 区间合并

问题描述

解决方法

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
#include <stdio.h>

void sort(int s[], int e[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (s[j] > s[j + 1])
{
int temps = s[j];
int tempe = e[j];
s[j] = s[j + 1];
e[j] = e[j + 1];
s[j + 1] = temps;
e[j + 1] = tempe;
}
}

void merge(int s[], int e[], int n)
{
int start = s[0], end = e[0];
for (int i = 1; i < n; i++)
{
if (end < s[i])
{
printf("%d %d\n", start, end);
start = s[i];
end = e[i];
}
else if (end < e[i])
{
end = e[i];
}
}
printf("%d %d\n", start, end);
}

int main()
{
int n;
scanf("%d", &n);
int s[n], e[n];
for (int i = 0; i < n; i++) scanf("%d %d", &s[i], &e[i]);
sort(s, e, n);
merge(s, e, n);

return 0;
}

P2045 数字蚯蚓

问题描述

输入输出样例

解决方法

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
#include <stdio.h>
#include <string.h>

int main()
{
char str[200], be[200], af[200];
fgets(str, 200, stdin);
int len = strlen(str);
int k;
scanf("%d", &k);

strcpy(af, str);
for (int i = 0; i < k; i++)
{
af[i] = af[k];
}
strcpy(be, str);
for (int i = k; i < len - 1; i++)
{
be[i] = be[k - 1];
}
printf("%s", be);
printf("%s", af);
return 0;
}

第三期完结

看完了点个赞再走嘛




__EOF__\_\_EOF\_\_



LevOJ - 第三期
https://churk.top/2024/11/10/2024-11-10-01/
作者
Churk Ben
发布于
2024年11月10日
许可协议