AtCoder Beginner Contest 090

A

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
char a[3][3];
int main() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cin >> a[i][j];
}
}
for (int i = 0; i < 3; i++) cout << a[i][i];
cout << endl;
return 0;
}

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
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
int a, b;
bool check(int num)
{
char s[10];
int cnt = 0;
while (num)
{
s[cnt++] = num % 10;
num /= 10;
}
for (int i = 0; i < cnt; i++)
{
if (s[i] != s[cnt - 1 - i])
return false;
}
return true;
}
int main()
{
cin >> a >> b;
int res = 0;
for (int i = a; i <= b; i++)
{
if (check(i))
res++;
}
cout << res << endl;
return 0;
}

C

推式子,看哪些点点击多少次。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
LL a, b;
int main() {
cin >> a >> b;
if (a >= 2) a -= 2;
if (b >= 2) b -= 2;
cout << a * b << endl;
return 0;
}

D

推式子(看题解去罢)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// LUOGU_RID: 174587529
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k, answer;
signed main()
{
cin >> n >> k;
for (int b = k + 1; b <= n; b++)
{
answer += (b - k) * (n / b);
answer += max(0ll, n % b - k + 1);
if (k <= 0)
answer--;
}
cout << answer;
return 0;
}