AtCoder Beginner Contest 370 A-F in 4 Minutes [English Subtitles]

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 38

  • @teasnon
    @teasnon 3 หลายเดือนก่อน +9

    コンテスト終わったらすぐ投稿してくれるのありがたい

  • @takumamori7092
    @takumamori7092 3 หลายเดือนก่อน +8

    この速さは流石 ある意味解いた直後に見るための動画たちだったわけか

  • @クリスハロウィン
    @クリスハロウィン 3 หลายเดือนก่อน +5

    D問題をpythonでそのままシミュレーションしたらもちろんTLEでした。3完。

  • @anowlwithinternet9125
    @anowlwithinternet9125 3 หลายเดือนก่อน +3

    THAANNKKSSSS EVIMA LAB

  • @ディープヨシオ
    @ディープヨシオ 3 หลายเดือนก่อน +5

    B問題を理解するのにめっちゃ時間かかってしまった...

  • @divyanshpandey4697
    @divyanshpandey4697 3 หลายเดือนก่อน +1

    pretty nice solution for problem E

    • @divyanshpandey4697
      @divyanshpandey4697 3 หลายเดือนก่อน +1

      also thanks for providing O(n^2) solution to it...I was able to understand solution due to it only

    • @gsscala
      @gsscala 3 หลายเดือนก่อน

      @@divyanshpandey4697 same. n² solution is basically take only what you can while n solution is to take all minus those you can't

  • @ハムねこ-m9q
    @ハムねこ-m9q 3 หลายเดือนก่อน +4

    c問題全探索なのはわかったけどどう探索していけばいいかわからなった

  • @TCzvrAw3o7H
    @TCzvrAw3o7H 3 หลายเดือนก่อน +6

    c問題
    ①sのi文字目がtのi文字目より辞書順で後ならリスト1にiを追加
    ②tのi文字目がsのi文字目より辞書順で後ならリスト2にiを追加
    ③リスト2を逆順にしたものをリスト1の後ろに追加
    ④③で作ったリストの順に文字を変えてAnswerリストに追加
    ⑤Answerリストの要素の個数と中身を出力
    でAC出たけど、全探索でよかったのね。

    • @JD-is8yg
      @JD-is8yg 3 หลายเดือนก่อน +2

      自分もこれでやりました 貪欲おもしろいですよね

    • @クリスハロウィン
      @クリスハロウィン 3 หลายเดือนก่อน +1

      全く同じです。初学者で逆に全探索のやり方が分からなかった。
      リスト1はmazukotti リスト2はmazumushi っていうめちゃ長いリスト名だったけど。

  • @ア-u7p
    @ア-u7p 3 หลายเดือนก่อน +5

    Dみて二次元配列で解けそうと思ってやったら、25,26でTLE出て絶望したわ

    • @amanpatel8575
      @amanpatel8575 3 หลายเดือนก่อน +3

      Same, Got TLE on last two. ;-;

  • @HelloingBoi-pk4io
    @HelloingBoi-pk4io 3 หลายเดือนก่อน +1

    2:24 制限時間は4秒なのに'2s'のままになってますね....

  • @sakamiyari
    @sakamiyari 3 หลายเดือนก่อน +1

    D問題、制限時間は説明内では4sと言っているのに表示が2sになっていますよ。

  • @JD-is8yg
    @JD-is8yg 3 หลายเดือนก่อน

    面白かった~ 5完でした
    Fはダブリングだと楽だったんですね~ 次の行き先を二分探索で探していたら大変なことに

  • @sevenc-nanashi
    @sevenc-nanashi 3 หลายเดือนก่อน

    Dそれで良かったんだ〜!(列/行ごとにUnionFind持たせてleaderに端の座標を持たせて破壊時にマージ)

    • @sevenc-nanashi
      @sevenc-nanashi 3 หลายเดือนก่อน

      それでもRubyで1.3sにできたので満足

  • @manuoooooo
    @manuoooooo 3 หลายเดือนก่อน

    F問題を見てevimaさんのピザの動画を思い出した

  • @_kyou8182
    @_kyou8182 3 หลายเดือนก่อน +1

    Bの問題の意味を理解するのに凄い時間かかった...
    AとBのみ正解で、Cは例文では成功するのに提出で不正解でした
    単純にSとTを比較して、Sの方の文字順が後なら優先して変更。Sの方の文字順が先なら後回しで変更。
    これを先頭の方から修正加える様にしてたのですが、んー、なんで上手くいかないんだろ?
    解説みても分からなかったので、もっと検証して理解進めます!
    解説ありがとうございました

    • @evimalab
      @evimalab  3 หลายเดือนก่อน

      Cは動画中の入力
      ===
      abc
      cat
      ===
      で失敗する可能性がそれなりにあると思いますので、よければお試しください。
      (答えは以下です。)
      3
      aac
      aat
      cat

    • @_kyou8182
      @_kyou8182 3 หลายเดือนก่อน

      ​@@evimalab 回答ありがとうございます!
      提案されてる例で理解しました!
      後回しの方は、文字の後ろの方から修正かけないといけなかったのですね...
      問題を理解するのが、まだまだ慣れてないのでもっと過去問で勉強します

  • @Pukimaxim
    @Pukimaxim 3 หลายเดือนก่อน

    I attempted to solve D in python during the contest and kept on getting wrong answer... Turns out it was just an indentiation issue causing a block of code to not be run all the time. I submitted after the contest is done and got AC :')

  • @A0ikun1818
    @A0ikun1818 3 หลายเดือนก่อน

    F二分探索はともかくダブリングは思いつかなかった

  • @CoderAt-w6l
    @CoderAt-w6l 3 หลายเดือนก่อน +1

    4完、最近本当にだめだ、、、

  • @ぬまMAD
    @ぬまMAD 3 หลายเดือนก่อน

    Noのパターンを無視してA問題めっちゃ迷った。
    最初XORで書いたけどダメだった…
    B問題
    何とかクリアしたけど少し考え方がめんどかったかも

  • @aneeshm2
    @aneeshm2 3 หลายเดือนก่อน

    Problem C can also be done in linear time (well, technically just the output is O(N^2), but the actual solution can be linear).
    Clojure code for this:
    ; Get the parsed input.
    (defn get-3prob-input []
    (let [s (vec (read-line))
    t (vec (read-line))]
    [s t]))
    ; Generate the increments and decrements.
    (defn idmap-prob3 [s t]
    (loop [s s
    t t
    idmap {:incs [], :decs []}
    index 0]
    (if (empty? s)
    (update idmap :decs (comp vec reverse))
    (let [[u & rs] s
    [d & rt] t
    u (int u)
    d (int d)]
    (recur
    rs
    rt
    (cond
    (= u d) idmap
    (> u d) (update idmap :incs conj index)
    (< u d) (update idmap :decs conj index))
    (inc index))))))
    ; Substitute over the increments and (reversed) decrements.
    (let [[s t] (get-3prob-input)
    idmap (idmap-prob3 s t)
    x (second
    (reduce
    (fn [[current x] nextsub]
    (let [nxt (update current nextsub (constantly (t nextsub)))]
    [nxt (conj x (apply str nxt))]))
    [s []]
    (concat (:incs idmap) (:decs idmap))))]
    (println (count x))
    (doseq [xi x] (println xi)))

  • @ishandlechangenotworking
    @ishandlechangenotworking 3 หลายเดือนก่อน

    And where is G?

  • @mr.victory.
    @mr.victory. 3 หลายเดือนก่อน +2

    Please give optimised approach of C
    What I did:
    Ran a loop and for every iteration I checked if the character of a is greater than corresponding character of b , if yes then i will replace it with character of b hence making it equal .
    After running this loop we have to make to change the characters remaining (those ones where char at a was less than char at b)
    For I sorted the remaing characters from b . then according to that order i replaced every character .
    It worked pretty well for given test cases but not accepted idk why pls help this is my code (in java).
    import java.util.*;
    public class Main{
    public static void main(String [] args)
    {
    Scanner sc= new Scanner(System.in);
    String a=sc.next();
    String b=sc.next();
    char [] ac= a.toCharArray();
    char [] bc= b.toCharArray();
    ArrayList list = new ArrayList();
    TreeMap map= new TreeMap();
    int n=ac.length;
    int count=0;
    for(int i=0;i bc[i]) {
    ac[i] = bc[i];
    list.add(new String(ac));
    count++;
    }
    else if (ac[i] < bc[i]) {
    map.put(bc[i],i);
    }
    }
    for (Map.Entry entry : map.entrySet()) {
    ac[entry.getValue()]= entry.getKey();
    list.add(new String(ac));
    count++;
    }
    System.out.println(count);
    for(String s:list)
    {
    System.out.println(s);
    }
    }
    }

    • @pranavbhalerao308
      @pranavbhalerao308 3 หลายเดือนก่อน +1

      Even i did same also it was my first contest at Atcoder problems were good.

    • @evimalab
      @evimalab  3 หลายเดือนก่อน

      Your code produced a wrong answer for the case used in the video.
      [Input]
      abc
      cat
      [Output from your code]
      3
      aac
      cac
      cat

    • @rocketxd9915
      @rocketxd9915 3 หลายเดือนก่อน

      void solve()
      {
      string s,t;
      cin>>s>>t;
      vector v;
      string st=s;
      if(s==t)
      {
      cout

    • @mr.victory.
      @mr.victory. 3 หลายเดือนก่อน

      @@pranavbhalerao308 same lol

    • @mr.victory.
      @mr.victory. 3 หลายเดือนก่อน

      @@evimalab oh yes mb

  • @autolambda
    @autolambda 3 หลายเดือนก่อน

    1