2020-11-01から1ヶ月間の記事一覧

ABC184の感想を書く.Python

こんばんは,tax_freeです.先週のABCは頭が痛くで参加できなかったので,二週間ぶりのABCでした(コード自体はJOI対策で書いていた). A - Determinant 問題文の定義の通りに計算する. a, b = map(int, input().split()) c, d = map(int, input().split()) p…

PythonでJOI難易度6を埋める #1

難易度5が前回で終わり,今回から難易度6に突入!!!!.思い込みの影響もあるかもしれないが,難易度5に比べると難しくなってるように感じる... E - おせんべい Rが小さいので縦のどこを操作するかで全探索する.横の操作の枚数は操作する行でのみ変化するので…

Python(C++)でJOI難易度5を埋める #32

これで難易度5はおしまい B - たのしいカードゲーム (Card Game is Fun) Bは前から何枚取り除くかを考えればよいので,取り除くBの枚数と,そのときのAとの共通部分を調べればいい. #include <bits/stdc++.h> using namespace std; int main() { int a, b; cin >> a >> b; </bits/stdc++.h>…

PythonでJOI難易度5を埋める #31

A - JJOOII (JJOOII) 連続するJ,O,I を数える.JJOOOIIIのようなケースに気をつける. s = input() cnt_j, cnt_o, cnt_i = 0, 0, 0 ans = [0] for i in range(len(s)): if cnt_i != 0 and s[i] != 'I': cnt_j, cnt_o, cnt_i = 0, 0, 0 if s[i] == 'J': if …

Python(C++)でJOI難易度5を埋める #30

A - 惑星探査 (Planetary Exploration) PythonだとTLE,PyPyだとMLEで死ぬので,C++で解く.許して.二次元累積和 #include <bits/stdc++.h> using namespace std; int main() { int m, n, k; cin >> m >> n >> k; vector<string> geo(m); vector<vector<int>> query(k, vector<int>(4)); for (int i </int></vector<int></string></bits/stdc++.h>…

PythonでJOI難易度5を埋める #29

B - 共通部分文字列 文字列sを前から1つずつ除いたものと文字列tを比べる,文字列tを前から1つずつ除いたものと文字列sを比べれば最大の共通部分が分かります. #include <bits/stdc++.h> using namespace std; int main() { string s1, s2; cin >> s1 >> s2; int l1, l2, c</bits/stdc++.h>…

PythonでJOI難易度5を埋める #28

D - パスタ (Pasta) bit全探索は厳しいので,DPを使ってとく.指定されたソースを使う日の処理,最後に10000で割ることに注意して実装する. n, k = map(int, input().split()) ab = [list(map(int, input().split())) for _ in range(k)] dp = [[0 for _ in…

PythonでJOI難易度5を埋める #27

D - 1年生 (A First Grader) bit全探索だと満点は取れないので,別の方法を考える.番目までに+か-を入れてきたときの和でDPすればうまくいく. 今の数字を,番目に追加する文字をとすると,DP遷移式は, - 0のとき,dp[ + 1][ - ] += dp[ ][ ] + 20のとき,…

PythonでJOI難易度5を埋める #26

IOIOI 文字列を逐一数えるのは面倒なので,"I"と"O"が交互の並び条件を満す長さの列を調べる. "I"と"O"が交互に並んでいるかはflagのT or Fで判定(一つ前が"I"ならT,"O"ならF). n = int(input()) m = int(input()) s = input() cnt = 0 flag = False ans …

PythonでJOI難易度5を埋める #25

D - 薄氷渡り 一つの経路を調べた後に氷を経路を調べる前の状態に戻す必要があるので,再帰関数で実装します. m = int(input()) n = int(input()) ice = [[0] * (m + 2)] for _ in range(n): tmp = list(map(int, input().split())) ice.append([0] + tmp +…

ABC182の感想

A - twiblr 条件式とBを比較する. a, b = map(int, input().split()) m = 2 * a + 100 if m > b: print(m - b) else: print(0) B - Almost GCD の範囲が小さいので,2以上以下の自然数を全探索する. n = int(input()) a = list(map(int, input().split()))…

新・物理入門の例題2-5をやる

自分用に記録 与えられた式(2-17)より 滑車 : ← (ア) A : ← (イ) B : ← (ウ) 糸の長さが一定なので, ← (エ) が成り立つ. よって,上の4式から A を消去すると,. (イ)より,,同様に. 問題文よりなので < ,つまり < . Fの最小値を聞いているので,で考…