Naomi's notebook

Naomi's notebook

ワーシャルフロイド(ABC073D - joisino's travel)

atcoder.jp 簡単な問題が続いている… 通る頂点が8個と少ないので、この8つの頂点からの各頂点への最短距離を求めておく。 まあ全頂点間でも間に合うしめんどくさいのでそうする。ワーシャルフロイド(計算量) あとは8!通りの通り方についてこれを使って合計…

ダイクストラ(ABC070D - Transit Tree Path)

atcoder.jpオリ合宿のバスの中で。ただのダイクストラ。五分。 #include <stdio.h> #include <stdlib.h> #include<math.h> #include<algorithm> #include<vector> #include<queue> #include<string> #include<set> #include<cstring> using namespace std; #define rep(i,n) for(int i=0;i</cstring></set></string></queue></vector></algorithm></math.h></stdlib.h></stdio.h>

考察(ABC064D - Insertion)

atcoder.jpえ〜、なんかすぐ出来た。括弧列であることと、(の個数と) の個数が同じで、さらに前から部分列を取得したときその部分列において( の個数が )の個数以上であることは同値である。 また、追加する個数が同じとき、(は先頭、)は末尾に持ってきても(…

最長経路問題byベルマンフォード(ABC061D - Score Attack)

atcoder.jp問題を見てダイクストラ法ですかねと思い、ダイクストラ実装…してから気づいたけどよく考えたら最長経路問題だった。部分構造最適性が成立していないのでダイクストラ法みたいに計算量少なくは出来なかった…(色々考えた)辺の値全てに-1をかける…

DP(ABC057D - Maximum Average Sets)

atcoder.jp前回のやつより簡単だった(ただのナップサック問題で考察がほとんどいらないただのDPだったので) 何個選ぶか決めた時、価値の平均値が大きい順は価値の合計値が大きい順と同じ。合計を保持するDPを作って、最後にそれを個数で割って平均値を出し…

半分全列挙(DP)(ABC054D - Mixing Experiment)

ところでD問題って(n年前の感覚としては)普通に解けるような感覚でいたけど結構厳しい 精進をn年もサボっていたせいですねatcoder.jp二通りのやり方で解きました。半分全列挙全探索すると2^40かかる。 半分全列挙すると2^21かかる。難しいこと考えずにこれ…

全頂点対最短経路問題(ABC051D - Candidates of No Shortest Paths)

コンテストの時だけ思い出したように進捗を生むのも良くないと思うので、精進をしようと思います。なお、証明とかがガバガバかもしれませんのでご了承ください。現在の私にとっては、苦手だったり勘違いしなければコンテスト時間内に、そうでなくても時間を…