けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

灰色diff

AtCoder ABC 206 C - Swappable (灰色, 300 点)

包除原理の一番簡単な場合を試せる問題 問題へのリンク 問題概要 個の整数 が与えられる。以下の条件を満たす整数 の組の個数を求めよ。 制約 考えたこと まず、 という条件がないバージョンを考えてみよう。そのときは単に 個のものから 2 個選ぶ場合の数を…

AtCoder ABC 196 C - Doubled (灰色, 300 点)

いわゆる、 まで調べれば十分というタイプの問題だね。最近そのタイプの問題が流行っている気がする! 問題へのリンク 問題概要 十進法表記で偶数桁で、かつ、その前半と後半とが文字列として等しいようなものを「良い整数」と呼ぶことにします。 以上 以下…

AtCoder ABC 193 C - Unexpressed (灰色, 300 点)

むずかしかった!!! でも、約数列挙でありがちな「 まで試せば良い」という考え方がちゃんと理解できているかを問う良問だった!! 問題へのリンク 問題概要 整数 が与えられる。 1 以上 以下の整数のうち、 2 以上の整数 を用いて と表せないものはいくつ…

AtCoder ABC 187 C - 1-SAT (灰色, 300 点)

とにかく実装力を鍛えよう〜〜 問題へのリンク 問題概要 個の文字列が与えられる。そのうちのいくつかは先頭の文字が ! である (それ以外はすべて英小文字)。 red gray !orange yellow !blue cyan !green brown !gray ! の付いていない文字列と、付いている…

AtCoder ABC 134 C - Exception Handling (灰色, 300 点)

個のものから 個除いたものを考えるのは色々定石がある! 問題へのリンク 問題概要 個の整数 が与えられる。 各 に対して、 を除外した 個の整数の最大値を求めよ。 制約 解法 (1):アドホックに考える まずは素朴な解法を考えてみる。たとえば とかだったと…

AtCoder ABC 186 C - Unlucky 7 (灰色, 300 点)

整数 の各桁の値を取り出す方法さえわかれば!! 問題へのリンク 問題概要 以上 以下の整数のうち、10 進法で表しても 8 進法で表しても 7 を含まないようなものの個数を求めよ。 制約 考えたこと まず、整数 が与えられたときに、それを 10 進法で表したと…

AtCoder ABC 185 C - Duodecim Ferra (灰色, 300 点)

二項係数!! オーバーフローがこわくて、漸化式で二項係数求めるやつをやった。でももっと簡単にできた。 問題へのリンク 問題概要 長さ の鉄の棒が東西方向に横たわっています。 この棒を 11 箇所で切断して、12 本に分割します。このとき分割後の各棒の長…

AtCoder ARC A - Redundant Redundancy (灰色, 300 点)

言語「text (cat)」で AC を取れる数少ない問題の一つ 問題へのリンク 問題概要 正の整数 が与えられる。 のどれで割っても 1 あまる整数 ( 以上 以下) を一つ求めよ。 制約 解法 (1) の最大公倍数を として、 が答えになる。似た発想をする問題として、次の…

AtCoder ABC 182 C - To 3 (灰色, 300 点)

これ灰色ってマジか!! 問題へのリンク 問題概要 どの桁の値も 0 でないような正の整数 が与えられる。 に含まれるいくつかの数値を除去することで、 が 3 の倍数となるようにしたい。 除去すべき数値の個数の最小値を求めよ (最初から 3 の倍数の場合は 0 …

AtCoder ARC 109 A - Hands (灰色, 300 点)

Dijkstra 法をしたけど、同じ殴りなら Warshall--Floyd 法にすればよかった。 問題へのリンク 問題概要 100 階建ての 2 つの建物 A, B がある。 A, B 内では 1 フロア上下するのに 秒を要する A の 階と B の 階とが廊下でつながっていて、移動に 秒を要する…

AtCoder ARC 108 A - Sum and Product (灰色, 300 点)

教育的な約数列挙問題!! 問題へのリンク 問題概要 2 つの正の整数 が与えられます。 を満たす正の整数 が存在するかどうかを判定せよ。 制約 考えたこと として、 の約数のみを考えれば OK。そして を決めると は と決まる。 となることがあるかどうかを判…

AtCoder ARC 023 A - 経過日数 (灰色)

日付に関する問題は Python が楽!! 問題へのリンク 問題概要 与えられた日付から、2014/05/17 までの経過日数 (負もありうる) を求めよ。 制約 "1988/07/03" から "2014/12/31" まで 考えたこと 全部 Python の datetime に任せる! コード import datetim…

AtCoder ARC 002 B - 割り切れる日付 (灰色)

現在の AtCoder ではあまり出なさそうな問題。こういうのは Python 楽だね。 問題へのリンク 問題概要 (西暦) ÷ (月) ÷ (日) が整数となるような日付を「割り切れる日付」と呼ぶ。 日付が "2020/11/14" のようなフォーマットで与えられる。その日付以降の最…

AtCoder AGC 046 A - Takahashikun, The Strider (灰色, 200 点)

面白かった。久しぶりの最大公約数ゲー。 問題へのリンク 問題概要 平面上に高橋君がおり、真北を向いて立っています。 高橋君が以下の行動を 回繰り返したときに元の位置に戻ってくるような最小の正の整数 を求めてください。 今向いている方向に 1 メート…

AtCoder AGC 041 A - Table Tennis Training (灰色, 300 点)

若干注意力ゲーだった。端で折り返してこれることに注意。 問題へのリンク 問題概要 正の整数 が与えられる。2 つの整数 に対して毎回以下のような操作を行う。2 つの整数が一致させられるまでの最小回数を求めよ。 整数 が でも でもないとき、 と のいずれ…

AtCoder AGC 037 A - Dividing a String (灰色, 300 点)

意外とすぐにわからなかったんやけど... 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。以下の条件をみたす最大の正整数 を求めよ。 を空でない 個の文字列へと分割したとき、連続する文字列は相異なる 制約 Greedy は嘘 パッと思い浮かぶ …

AtCoder AGC 024 A - Fairness (灰色, 300 点)

少し手を動かせば見えてくる! 問題へのリンク 問題概要 高橋君、中橋君、低橋君は、それぞれ整数 を持っている。 以下の操作を 回行った後の、高橋君の持っている整数から中橋君の持っている整数を引いた値を求めよ。ただし、答えの絶対値が を超える場合は…

AtCoder AGC 021 A - Digit Sum 2 (灰色, 300 点)

少し慎重に 問題へのリンク 問題概要 以下の正の整数の 10 進法での各桁の和の最大値を求めよ。 制約 考えたこと とかだったら答えは になりそうだ。一般に、 の形をしたものだけ考えれば良さそう。仮に とかが最適解だったとしても、その場合は として、 も…

AtCoder AGC 020 A - Move and Win (灰色, 300 点)

シンプルだけど、すごい好き 問題へのリンク editorial 問題概要 マス と区切られた マス上でゲームする。 Alice は最初マス に、Bob は最初マス にいる。交互に左右どちらかに動かす。ただし「マスの外」や「相手のいるマス」には動かせない。 先に動かせな…

AtCoder ABC 181 C - Collinearity (灰色, 300 点)

幾何っぽい問題。確かに数学ゲーではあるのだけど、平行判定は「計算幾何」の知見として習得してしまっても良さそう。 問題へのリンク 問題概要 二次元平面上に 個の点 () が与えられる。 これらのうちの 3 点であって、同一直線上にあるものが存在するかど…

AtCoder ARC 107 A - Simple Math (灰色, 300 点)

よくある式変形問題 問題へのリンク 問題概要 3 つの正の整数 が与えられる。 を 998244353 で割ったあまりを求めよ。 制約 考えたこと 求める値は に一致する。あとは modint を活用すれば求められる! コード #include <bits/stdc++.h> using namespace std; // modint te</bits/stdc++.h>…

AISing Programming Contest 2020 C - XYZ Triplets (灰色, 300 点)

ごとに考えるのではなく、集計する考え方をするのがポイント!!! 問題へのリンク 問題概要 正の整数 が与えられる。各 に対して、 は正の整数 を満たすような の組の個数を求めよ。 制約 考えたこと 最初に特定の整数 に対して は正の整数 を満たす の個数…

AtCoder ABC 180 C - Cream puff (灰色, 300 点)

完全に約数列挙!!!!! 問題へのリンク 問題概要 正の整数 が与えられる。 の正の約数をすべて出力せよ。 制約 考えたこと 約数列挙問題そのものだった!!!!! まったくそのまんまなものを次の記事の「3. 約数列挙」のところで書いた! qiita.com 計算…

AtCoder ARC 105 B - MAX-=min (灰色, 300 点)

操作が「Euclid の互除法」っぽくなっている系の問題!!!そういう系の問題は次の一覧で示してる drken1215.hatenablog.com 問題へのリンク 問題概要 個の正の整数 に対して次の操作を繰り返し行う。 個の整数の最大値を 、最小値を とする。 なら手続きを…

HHKB プログラミングコンテスト 2020 C - Neq Min (灰色, 300 点)

mex!!!それにしても、ならし計算量解析系が来たのびっくり! 問題へのリンク 問題概要 長さ の数列 が与えられる。 各 に対して、0 以上の整数で のいずれとも等しくない値のうち最小値を求めよ。 制約 考えたこと とりあえず次のような配列を用意したく…

AtCoder ABC 177 C - Sum of product of pairs (灰色, 300 点)

茶色 diff にはなると思ったけど、灰色 diff だった...「/2」が必要と感じて詰まる人も多いと思ったのに... 問題へのリンク 問題概要 個の整数 が与えられる。 を満たすすべての に対しての の総和を 1000000007 で割ったあまりを求めよ。 制約 考えたこと …

AtCoder ABC 176 C - Step (灰色, 300 点)

Greedy の一番簡単なパターン 問題へのリンク 問題概要 人が 1 列に並んでおり、前から 番目の人の身長は です。 それぞれの人の足元に、高さが 0 以上の踏み台を設置し、全ての人が次の条件を満たすようにしたいです。 条件:踏み台を込めて身長を比較した…

AtCoder ABC 179 C - A x B + C (灰色, 300 点)

でもできる! 問題へのリンク 問題概要 正の整数 が与えられる。 を満たすような正の整数 の組の個数を求めよ。 制約 考えたこと こういう整数問題は、実のところ本当に整数論的考察を必要とするパターンは少なくて、大抵は探索ベースの解法が有効になる!!…

AtCoder ABC 168 C - : (Colon) (灰色, 300 点)

余弦定理を使うか、座標を求めるか、、、いずれにしても三角関数の素養を要求する問題。 問題へのリンク 問題概要 時計の時針と分針があって、それぞれ長さは , となっている。 時 分の段階において、時針の先端と分針の先端との距離がどのようになっている…

AtCoder ABC 139 D - ModSum (灰色, 400 点)

これが灰色 diff なのかーーー、マジかーーー!!! いや、AtCoder プレイヤー、数学強すぎでしょ!!! 問題へのリンク 問題概要 正の整数 が与えられる。 の順列 をすべて考えたときの、 % の値の最大値を求めよ。 制約 考えたこと 文句なしの数学ゲー。で…