ABC 023 D - 射撃王

D - 射撃王 考えたこと 二分探索問題だということは分かっていた。だが、どこを二分探索すればいいのか全く分からなかった。 理解後の感想 参考にさせて頂いたサイト AtCoder Beginner Contest 023 D - 射撃王 の話 高度を探索するといった発想はなかった。 …

ABC 84 C - Snuke Festival 二分探索

C - Snuke Festival 考えたこと Aの要素を基準にしてBのlower_bound()を求め、またBを基準にしてCのlower_boundを求めるといった2重ループで求めようとした。当然TLE 気付いたこと これ真ん中のBを基準にすれば、AとCは2重ループにしなくても直接アクセスで…

ABC102 D - Equal Cut

D - Equal Cut 問題概要 長さ N の整数列 A を 3 箇所で切って、4 つの連続する数列に切り分ける。このとき、4 つの区間の値の和を P,Q,R,S とするとき、max(P,Q,R,S)−min(P,Q,R,S) の最小値を求めよ。 4≤N≤2×10の5乗 考えたこと 切れ目をそれぞれ入れていっ…

ABC102 C - Linear Approximation

C - Linear Approximation 問題概要 長さ N の整数列 A1,…,AN が与えられます。整数 b をいろいろ変えたときの A1−(b+1) + A2−(b+1) +⋯+ AN−(b+N) の最小値を求めてください。1≤N≤2×10の5乗 考えたこと 2次関数みたいなグラフになってると予想した。どっちか…

ABC 101 D Snuke Numbers

D - Snuke Numbers 問題概要 正整数nに対して、nを10進法表記したときの各桁の和をS(n)とし、関数gをg(n)=nS(n)と定義する。そして任意の正整数m>nに対してg(n)≤g(m)が成立するようなnを「すぬけ数」と呼ぶことにする。このとき、すぬけ数を小さい方から順に…

ABC 100 D Snuke Numbers

D - Patisserie ABC 問題概要 整数 3 つ組 (xi, yi, zi) が N 個与えられる。 このうちの M 個選んで、(x の選んだ M 個の総和の絶対値) + (y の選んだ M 個の総和の絶対値) + (z の選んだ M 個の総和の絶対値)が最大になるようにせよ。 制約 1 10の10乗 感…

ABC 100 B Ringo’s Favorite Numbers

問題リンク B - Ringo's Favorite Numbers 間違えたコード using namespace std; int main() { int D; cin >> D; int N; cin >> N; if (N == 100) { cout << 100; return 0; } if (D == 0) { cout << N; return 0; } if (D == 1) { cout << N * 100; return …

ABC 145 C - Average Length 順列全探索 

C - Average Length 問題概要 平面上でN個の座標が与えられる。全ての点を1回ずつ通るような動き方はN!通りあるが、これらの総移動距離の平均を求めよ。 制約 2 ≤ N ≤ 8 −1000≤xi≤1000 −1000≤yi≤1000 ( xi , yi ) ≠ ( xj , yj ) 考えたこと 順列全探索の問…

パナソニックプログラミングコンテスト2020 D - String Equivalence

D - String Equivalence 問題概要 abcacなどの標準形を探す問題 制約 1 入力はすべて整数 考えたこと 再帰関数問題だということは分かっていた。まず文字コードで書く場合を考えたが、それよりも楽で簡単な方法があることに気が付いた。 それが//cout 4であ…

CPSCO2019 Session1 C - Coins

未解決https://atcoder.jp/contests/cpsco2019-s1/tasks/cpsco2019_s1_c 問題概要 1, 10, 100, ..., 109, 5, 50, 500, ..., 5 * 109円硬貨がある スーパーでN種類の果物が1つずつ、それぞれA0,A1, ..., An-1円で売られているN種類の果物のうち、K個買う時の…

AtCoder ABC 161 D - Lunlun Number 再帰関数 正解問題 long long

問題概要 1 以上の整数であって、隣り合う桁の値の絶対値が 1 以下であるような数をルンルン数とよぶ。K 番目に小さいルンルン数を求めよ。 制約 1≤K≤10^5 考えたこと これはよくある再帰関数問題か..整数操作じゃなくて配列に整数を入れて後から文字列変換…

AtCoder ABC 114 C - 755 再帰関数 整数操作

不正解問題 問題概要 10 進法表記で各桁の値が 7 と 5 と 3 のみで、かつ 7, 5, 3 がすべて一度以上は登場するような数を「753 数」と呼ぶことにする。 整数 N が与えられて、N 以下の 753 数が何個あるかを求めよ。 制約 1≤N≤10^9 考えたこと(WA) 合計値のr…

sample問題は全問正解してるのに..なんでそんなにWAが多いの??

原因1 long long型を使っていない 原因2 for文のループ回数を書き間違えていて足りていない 原因3 関数の戻り値を間違えている 例: int dfs()..× unsigned long long dfs()..〇 ..exe

ABC 112 C - Pyramid 全探索 未解決

未解決。判定ifにどう落とし込むかが大事。 #include <iostream> #include <string> #include <algorithm> #include <vector> #include <queue> #include <cmath> using namespace std; const int INF = 1e9; int main() { int N; cin >> N; vector<long long>vx(N), vy(N), vh(N); int si = -1; for (int i = 0; i < N; i++</long></cmath></queue></vector></algorithm></string></iostream>…

ABC 068 B - Break Number 全探索の考え方。発想

全探索の考えかたが重要。考察問題。 整数操作も大事。6 -> 1回 (6>3) 8 -> 3回 (8 > 4 > 2 > 1)これらは、1からNまででループを回す考え方で解いてはいけない。 1から2倍していって、最大値がN以下の整数が答えである。コード #include <iostream> #include <string> #include <algorithm></algorithm></string></iostream>…

ABC 031 D - 語呂合わせ bit全探索 3進数

10進数から3進数に直すコードは以下の通りである for (int bit = 0; bit < pow(3, k); bit++) { int tmp = 0; for (int i = 1; i <= k; i++) {//数字1からkまで len[i] = tmp % 3 + 1; tmp /= 3; } } 例として28なら、len={2,1,1,2,1,1} (1 + 27) と保存され…