AtCoder Beginner Contest 336
AtCoder Beginner Contest 336
[ABC336A] Long Loong
题面翻译
给定一个数 \(n\),请输出一个由一个
L
、\(n\) 个 o
、一个 n
和一个 g
组成的字符串(区分大小写)。
题目描述
正の整数 $ X $ について、レベル $ X $ の 龍文字列
とは、$ 1 $ 個の L
, $ X $ 個の o
, $ 1 $ 個の
n
, $ 1 $ 個の g
をこの順に並べた長さ $ (X+3) $
の文字列です。
正の整数 $ N $ が与えられるので、レベル $ N $
の龍文字列を出力してください。
大文字と小文字は区別されることに注意してください。
输入格式
入力は以下の形式で標準入力から与えられる。
$ N $
输出格式
レベル $ N $ の龍文字列を出力せよ。
样例 #1
样例输入 #1
1 | 3 |
样例输出 #1
1 | Looong |
样例 #2
样例输入 #2
1 | 1 |
样例输出 #2
1 | Long |
提示
制約
- $ 1 N 2024 $
- $ N $ は整数
Sample Explanation 1
$ 1 $ 個の L
, $ 3 $ 個の o
, $ 1 $ 個の
n
, $ 1 $ 個の g
をこの順に並べた文字列は
Looong
です。
1 | // 模拟 |
[ABC336B] CTZ
题面翻译
求一个正整数 \(N\) 二进制下末尾 \(0\) 的个数。
\(1\le N\le 10^9\)。
题目描述
正の整数 $ X $ に対して、$ X $ を $ 2 $ 進表記したときに
末尾 に連続する $ 0 $ の個数(の最大値)を $ (X) $
で表します。
ただし、$ X $ を $ 2 $ 進表記したとき末尾が $ 1 $ ならば $ (X)=0 $
です。
正の整数 $ N $ が与えられるので、$ (N) $ を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
$ N $
输出格式
$ (N) $ を出力せよ。
样例 #1
样例输入 #1
1 | 2024 |
样例输出 #1
1 | 3 |
样例 #2
样例输入 #2
1 | 18 |
样例输出 #2
1 | 1 |
样例 #3
样例输入 #3
1 | 5 |
样例输出 #3
1 | 0 |
提示
制約
- $ 1 N 10^9 $
- $ N $ は整数
Sample Explanation 1
$ 2024 $ を $ 2 $ 進表記すると 11111101000
であり、末尾から 0
が $ 3 $ 個連続しているため、$ (2024)=3
$ です。 よって、$ 3 $ を出力します。
Sample Explanation 2
$ 18 $ を $ 2 $ 進表記すると 10010
であるため、$ (18)=1
$ です。 0
は末尾から連続する必要があることに注意してください。
1 | //模拟 |
1 | //内置函数 |
[ABC336C] Even Digits
题面翻译
定义满足没有前导零,且十进制下每个数位都为偶数的非负整数为好数。
求第 \(N\) 小的好数。\(1\le N\le 10^{12}\)。
题目描述
非負整数 $ n $ が次の条件を満たすとき、$ n $ を 良い整数 と呼びます。
- $ n $ を $ 10 $ 進法で表したときに、偶数の数字 $ (0, 2, 4, 6, 8) $ のみが登場する。
例えば $ 0 \(、\) 68 $ および $ 2024 $ は良い整数です。
整数 $ N $ が与えられます。良い整数のうち小さい方から $ N $ 番目の整数を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
$ N $
输出格式
小さい方から $ N $ 番目の良い整数を出力せよ。
样例 #1
样例输入 #1
1 | 8 |
样例输出 #1
1 | 24 |
样例 #2
样例输入 #2
1 | 133 |
样例输出 #2
1 | 2024 |
样例 #3
样例输入 #3
1 | 31415926535 |
样例输出 #3
1 | 2006628868244228 |
提示
制約
- $ 1 N 10^{12} $
- $ N $ は整数
Sample Explanation 1
良い整数を小さい方から順に並べると $ 0, 2, 4, 6, 8, 20, 22, 24, 26, 28, $ となります。 小さい方から $ 8 $ 番目の良い整数は $ 24 $ なので、これを出力します。
1 | //想起来是上学期舍友的五进制题目了() |
[ABC336D] Pyramid
题面翻译
对于正整数 \(k\),一个大小为 \(k\) 的“金字塔数列”为一个长度为 \(2k-1\) 的数列,里面的数字依次为 \(1,2,3,\dots k-1,k,k-1,\dots 3,2,1\)。
现在给一个长度为 \(n\) 的数列 \(S\),你可以进行以下操作任意次,使得数列最后变为一个“金字塔数列”:
- 选择一个数 \(i(1 \le i \le n)\),把
\(S_i\) 减少 \(1\)。
- 删除整个数列的第一个或最后一个数字。
问最后生成的“金字塔数列”的最大的 \(k\) 是多少。
题目描述
正の整数 $ k $ について、サイズ $ k $ の ピラミッド数列 とは、長さ $ (2k-1) $ の数列であって各項の値が順に $ 1,2,,k-1,k,k-1,,2,1 $ であるようなものをさします。
長さ $ N $ の数列 $ A=(A_1,A_2,,A_N) $ が与えられます。
$ A $ に対して、次の操作のうち一方を選んで行うことを繰り返して ($ 0 $
回でも良い)
得ることのできるピラミッド数列のサイズの最大値を求めてください。
- 数列の項を $ 1 $ つ選び、その項の値を $ 1 $ 減少させる。
- 先頭または末尾の項を削除する。
なお、問題の制約のもとで、操作を繰り返すことで必ず $ 1 $ 種類以上のピラミッド数列を得ることができることが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる。
$ N $ $ A_1 $ $ A_2 $ $ $ $ A_N $
输出格式
数列 $ A $ に問題文の操作を繰り返して得ることのできるピラミッド数列のサイズの最大値を出力せよ。
样例 #1
样例输入 #1
1 | 5 |
样例输出 #1
1 | 2 |
样例 #2
样例输入 #2
1 | 5 |
样例输出 #2
1 | 3 |
样例 #3
样例输入 #3
1 | 1 |
样例输出 #3
1 | 1 |
提示
制約
- $ 1 N 2 10^5 $
- $ 1 A_i 10^9 $
- 入力はすべて整数
Sample Explanation 1
$ A=(2,2,3,1,1) $ から始めて、 次のようにして数列 $ A $ からサイズ $ 2 $ のピラミッド数列を作る事ができます。 - 第 $ 3 $ 項を選び、$ 1 $ 減少させる。数列は $ A=(2,2,2,1,1) $ となる。 - 先頭を削除する。数列は $ A=(2,2,1,1) $ となる。 - 末尾を削除する。数列は $ A=(2,2,1) $ となる。 - 第 $ 1 $ 項を選び、$ 1 $ 減少させる。数列は $ A=(1,2,1) $ となる。 $ (1,2,1) $ はサイズ $ 2 $ のピラミッド数列です。 一方、どのように操作を行ってもサイズ $ 3 $ 以上のピラミッド数列を作ることはできないため $ 2 $ を出力します。
1 |
|