Skip to content

Instantly share code, notes, and snippets.

@uta8a
Created July 4, 2019 23:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save uta8a/a9790f65f2c52e0c35a363434ad18ccf to your computer and use it in GitHub Desktop.
Save uta8a/a9790f65f2c52e0c35a363434ad18ccf to your computer and use it in GitHub Desktop.

20190704 今日の精進

広義今日なので

蟻本

  • dpとかで、vig内グローバルに配列を置いてそれを参照することは可能か?→難しい。よく分からない状態で初期化するのはstatic mutになってunsafeへの道。解決策としては、structでpubにしておいて外部からアクセスできるようにする。その状態でstruct初期化を行い、それに応じた関数をselfで呼び出す。もっといいやり方がありそう。
  • あと、配列はプリミティブで所有権とかあまり気にしなくてよいので、Vecより配列を積極的に使っていく。(一度にとるときに向いてそう、要素が動的に追加される場合はVecがいいかも)
mod vig {  
    pub struct A {  
        pub dp: [u64; 5],  
    }  
    impl A {  
        fn new() -> Self {  
            A { dp: [0; 5] }  
        }  
        pub fn ret(&self, n: usize) -> u64 {  
            self.dp[n]  
        }  
    }  
    pub fn retall(n: usize) -> u64 {  
        let a = A::new();  
        a.ret(n)  
    }  
}  

fn main() {  
    let case1 = vig::retall(0);  
    println!("{}", case1); // 0   
    let a2 = vig::A {  
        dp: [1337, 0, 0, 0, 0],  
    };  
    println!("{}", case1); // 0  
    let case2 = vig::retall(0);  
    println!("{}", case2); // 0  
    println!("{}", a2.ret(0)); // 1337 initialized by a2  
}  
  • stack, queueの使い方(Vec, Deque)

push/popがわかっていればOK

  • dfsの使い方

配列もパラメータもすべて渡す形で書いてるけどもう少しきれいにできないかな…無限に引数が増えてしまう

  • ありほん進める
  • ありほん以外もできれば進める
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment