NoviSteps4Q
種類数に関する面白い問題! 問題へのリンク 問題概要 2 つの文字列 は、 である を左右反転してできる文字列 について、 である といういずれかの条件を満たすとき、似ているとみなす。 与えられた 個の文字列 について、似ている文字列は同一視することに…
バケットの練習を兼ねた、インタラクティブ問題! 問題へのリンク 問題概要(インタラクティブ) 最初に、正の整数 が与えられて、ゲームをする。あなたは高橋君で先手である。相手は青木君で後手である。 交互に、1 以上 以下の整数を言っていく。ただし、…
「変数を固定する考え方」と「set の活用」を組み合わせる練習問題! 問題へのリンク 問題概要 整数 と、 個の整数 が与えられる。 を満たす [tex i, j] ( でもよい) が存在するかを判定せよ。 制約 考えたこと この問題のように、 という 2 つの変数を考え…
いろんな解法がある。ここでは、ソートで解いてみよう! 問題へのリンク 問題概要 長さ の数列 と、長さ の数列 が与えられる。 各数列から要素 を選んだときの差 の最小値を求めよ。 制約 考えたこと 本当にいろいろな解き方がある。その中でも易しいのは、…
Greedy の基本でもある。 問題へのリンク 問題概要 駅 があって、駅 から駅 へと、時刻 以降、 秒ごとに発車する列車があって、移動に 秒かかる。他の駅間を移動する列車はない。また、 は の倍数であることが保証される。 各 に対して、駅 を時刻 0 に出発…
面白かった! 問題へのリンク 問題概要 英小文字および文字 '?' からなる文字列 が与えられる。 の各 '?' を英小文字に置き換えてできる文字列のうち、次の条件を満たす辞書順最小のものを求めよ。 (条件) 文字列 を連続する部分文字列として含む 制約 考え…
色々な解法があるが、set を使うのが楽。set のよい練習問題とも言える。 問題へのリンク 問題概要 最初何も書いていない黒板がある。次の 回の操作を行った。 回目の操作では、整数 を考える 黒板に が書かれていない場合は、新たに を黒板に書く 黒板に が…
B 問題としては難しい! 今風にいうと、Functional Graph のシミュレーション! 問題へのリンク 問題概要 個のボタンがある。ボタン が光っているときにそのボタンを押すと、ボタン の明かりが消え、その後ボタン が光る( であることもある)。 最初、ボタ…
長さが大きい順に処理していこう! 問題へのリンク 問題概要 長さが の棒がある。 これらの棒を 4 個選んで長方形を作りたい。作れる長方形の面積の最大値を求めよ。長方形を作れない場合は 0 と答えよ。 制約 考えたこと できるだけ大きい長さの棒を使いた…
最小公倍数を求めよう! 問題へのリンク 問題概要 台の時計があり、時計 の針はちょうど 秒で時計盤を 1 周する。 最初、全ての時計の針は真っ直ぐ上に向いており、止まっている。イルカは、全ての時計の針を同時に動かし始めた。再び、全ての時計の針が真っ…
これ系の問題、最近あまり見かけなくなった気がする。 問題へのリンク 問題概要 個の正の整数からなる数列 が与えられる。 この数列の項を適切に並び替えることによって、「どの隣接する 2 項の積も 4 の倍数」となるようにできるかどうかを判定せよ。 制約 …
完全に言われた通りに実装してしまうと、 の計算量となって TLE してしまうので、工夫しよう! 問題へのリンク 問題概要 空の配列に対して、以下の操作を 回行う。 回目の操作では 配列の末尾に値 を挿入する 配列全体を reverse する を行う。 回操作後の配…
面白い問題。最近はこういうの、あまり見ないかもしれない。 問題へのリンク 問題概要 個の正の整数 が与えられる。 これらからいくつか選んで総和をとる。ただし、その値が 10 の倍数である場合には、その値は 0 になってしまう。 この値の最大値を求めよ。…
集計処理した上で、再度大きい順にソートする問題 問題へのリンク 問題概要 個の文字列 が与えられる。 この列に一回以上出現する単語を、その出現回数の多い順に並べたとき 番目の単語を出力せよ(一意に決まらない場合は "ambiguous" と出力せよ)。 制約 …
すごく面白い問題! 問題へのリンク 問題概要 個の文字列 が与えられる。 これらの文字列から異なる 2 つの文字列を選ぶ方法であって、それらの文字列が互いにアナグラムとなっているものの個数を求めよ。 制約 考えたこと まずは、問題の条件をわかりやすく…
素朴な map の練習問題 問題へのリンク 問題概要 りんごさんは 個の問題案を持っており、 個目の問題案の難易度は である。 ここから、配点が であるような 問からなる問題セットを作ることは可能か? 制約 考えたこと 連想配列 (C++ ならば map) の練習問題…
意外と整理するのが大変だと思う。map を使って整理しようとするのも自然だが、もうちょっと簡単に解くことを考えよう。 問題へのリンク 問題概要 文字列を投稿すると得点が与えられるコンテストに、 個の文字列 がこの順に投稿され、それぞれ 点が与えられ…
SNS を題材にした set の練習問題 問題へのリンク 問題概要 人から SNS について、次の 個のクエリに答えよ(初期状態では全員が誰もフォローしていない)。 クエリタイプ 1:人 が人 をフォローする(フォロー済みの場合は何もしない) クエリタイプ 2:人 …
ちょっとした考察が必要になる問題。 問題へのリンク 問題概要 整数からなる数列 が与えられる。数列の各要素に対して「何もしない」「1 を足す」「1 を引く」をしていく。 操作後に、整数値 を選ぶ。 となる の個数の最大値を求めよ。 制約 考えたこと 問題…
連想配列の練習問題! 問題へのリンク 問題概要 長さ の整数列 が与えられる。この数列に対して、次の 個のクエリに答えよ。 【クエリ】 整数 が与えられるので、整数列を順に見ていったときの「 個目の値 の要素」の index を答えよ(存在しない場合は -1)…
set の練習! 問題へのリンク 問題概要 二次元平面上に高橋君がいる。高橋君は原点から移動を 回行った。 回の移動は長さ の文字列で表される。各文字は L(左へ移動)、R(右へ移動)、U(上へ移動)、D(下へ移動)のいずれかである。 高橋君が同じ座標に…
サンプルを見れば上限が分かる系の問題! 問題へのリンク 問題概要 各桁の値が 1 である数をレプユニット数という。 レプユニット数 3 個の和として考えられる数のうち、 番目に小さい数を求めよ。 制約 考えたこと まず、問題文の条件を満たす数をトリレプ…
探索アプローチでも解けるし、整数論的考察で解くこともできる。 問題へのリンク 問題概要 の倍数であって正の整数であるものをいくつか用意する。 その総和を で割った余りが となることはありうるか? 制約 考えたこと まず、「いくつかの正の の倍数を足…
少し考察が必要になる問題。結局隙間なく作れる。 問題へのリンク 問題概要 最初、黒板に 0 という数が書かれている。 秒後には、黒板に書かれた数 を以下のいずれかに置き換えることができる。 黒板に書かれた数を にできるのは最短で何秒後か? 制約 考え…
最大公約数。鉄則本の問題なので、コードのみ。 問題へのリンク 問題概要 2 つの正の整数 の最大公約数を求めよ。 制約 コード #include <bits/stdc++.h> using namespace std; long long GCD(long long x, long long y) { if (y == 0) return x; else return GCD(y, x % y)</bits/stdc++.h>…
ちょっと重たい全探索問題 問題へのリンク 問題概要 の形に配列された二次元文字列 が与えられる。 に対して、次の操作を繰り返すことで に一致させたい。 反時計回りに 90 度回転する (コスト 1) 時計回りに 90 度回転する (コスト 1) 1 マス選んで文字を変…
スタックのいい練習問題! 問題へのリンク 問題概要 空の列と 個のボールがある。 番目のボールの大きさは である。これから 回の操作を行う。 回目の操作では、 個目のボールを列の一番右に付け加えた後、次の手順を繰り返す。 列にあるボールが 1 つ以下な…
キューの使い方の確認! 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。行列管理システムを模している。 クエリタイプ 1:行列の最後尾に さんが並ぶ クエリタイプ 2:行列の先頭にいる人の名前を答える クエ…
人生で最初に解きたいスタックの問題 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。 クエリタイプ 1: という題名の本を机の一番上に積む クエリタイプ 2:一番上に積まれている本の題名を答えよ クエリタイ…
スタックを用いたシミュレーション問題! 問題へのリンク 問題概要 最初、本は積まれていない。次の 回のクエリに答えよ 【クエリ】 各クエリでは文字列 が与えられる。 が "READ" ではないとき、タイトルが である本が新たに上に積まれる が "READ" である…