2014-01-01から1年間の記事一覧

CF #250 Div1

A 大きい頂点から貪欲に取れば良い事に気づけばおしまいB 辺を、最大全域木だけで考えてもOKな事に気づけばおしまいD SegTreeでとても単純にやればおしまい 少なくともO(Nlog^3 N)だけど、O(Nlog^2 N)で押さえられる気もする

GCJ Round2

Tシャツも貰えませんでした。Ω\ζ°)チーン。

GCJ Round1A

Cに時間がかかってΩ\ζ°)チーン 117thA O(N^3L)でやるだけと思いきや、Tの存在を忘れていた、危なかったB うんC i番目の数がj番目に移動する確率を求めようとする なんかj というわけでd[i] Accept

UTPC参加記

[-1:30:00] kitayutaと出会い厨したかったが東口がわからない。渋谷は魔界 出会い厨してうどんを食べる。 [-0:45:00] †ヒカリエ† LINEのオフィスにお邪魔 [0:00:00] epsのFA可能性に期待しBオープン。これはやるだけですねぇ [0:13:27] B AC まぁFAなんてと…

Starry Sky

難しいのがStarry Sky Tree組むとこじゃないってのが面白いよね(面白くない) StarrySkyTreeをstructにしただけで2600ms->2200msぐらいになって頭抱えてる #include <vector> #include <iostream> #include <set> #include <cstdio> #include <queue> #include <cstdio> #include <cstdlib> #include <cassert> #include <ctime> #incl</ctime></cassert></cstdlib></cstdio></queue></cstdio></set></iostream></vector>…

ARC 17 A~D

A 素因数分解をしましょう。脳みそが常人の1%にも満たないから2回WAを出す。 #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <map> #include <vector> #include <sstream> #include <typeinfo> #include <queue> #include <stack> #include <tuple> using name…</tuple></stack></queue></typeinfo></sstream></vector></map></set></algorithm></iostream></ctime></cstring></cmath></cstdio>

無向グラフの最小カットを求めるアルゴリズム

Nagamochi-Ibaraki考案らしいです。 はじめに この記事は無向グラフの最小カット、つまり無向グラフを2つに分断する時、切らなくてはならない道の本数の最小を高速に求めるアルゴリズムの解説をします。 アルゴリズムへの下準備 最大隣接順序 f(x, y)をxとy…

Codeforces #228 Div1

だれか心優しい人D教えてください。マジで。 黄色(弱)になったA 貪欲。 #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <typeinfo> #include <queue> using namespace std; typedef long long ll; int main() { int n;…</queue></typeinfo></sstream></vector></set></algorithm></iostream></ctime></cstring></cmath></cstdio>

AOJ 2429 まるかいて

Div1Easy以上Mid未満かなぁ、フローはほとんど解いたことが無いから難易度判別できない><〜 重み付き二部最大マッチングです。 #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <map> #include <vector> #include <sstream> #include <typeinfo> #include <queue></queue></typeinfo></sstream></vector></map></set></algorithm></iostream></ctime></cstring></cmath></cstdio>…

Codeforces #216 Div2 D. Valera and Fools

ただの幅優先探索です。たまには簡単な問題も。 #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <map> #include <vector> #include <sstream> #include <typeinfo> #include <queue> #include <stack> #include <tuple> using namespace std; typede…</tuple></stack></queue></typeinfo></sstream></vector></map></set></algorithm></iostream></ctime></cstring></cmath></cstdio>

Codeforces #160 Div1 D. Maxim and Increasing Subsequence

蟻本のアルゴリズムを写経したら通ってしまった…5304/6000msなのでどう考えても嘘解法 しかもテストケースが甘いからっぽい…N=10^6 MAX_B=200 T=199みたいなので簡単に落とせるハズ O(K*N*MAX_B*log(N))のはず #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #inc</ctime></cstring></cmath></cstdio>…

Codeforces #160 Div1 C. Maxim and Matrix

紙orペンで試す→規則を見つける→計算する→終わり実際にコードを書いて表を生成してみると面白いので試してみることをお勧めします。 いわゆるフラクタルってやつですね #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #i</vector></set></algorithm></iostream></ctime></cstring></cmath></cstdio>…

Topcoder SRM606

Easy ARCのB問題みたいな感じだったけど220ptぐらいしか取れなくて人権ががが Aさんが一つ数字を持ってる。 Bさんが一つ数字を言う→誤差の絶対値を教えてくれる Bさんの言った数字とそれとの誤差の絶対値を与えられるから解を求める class EllysNumberGuessi…

Codeforces #162 Div1 D. Colorful Stones

なんかアルゴリズムももやっとした理解だしそもそも解いた方法も提出→WAしたケースでデバックを繰り返した感じなんでう〜〜〜ん #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <typeinfo> #include <queue> #include <stack></stack></queue></typeinfo></sstream></vector></set></algorithm></iostream></ctime></cstring></cmath></cstdio>…

Codeforces Croc Champ 2012 - Final D. T-shirt

重量mのTシャツをk枚以上持ってる期待値 それをすべての{m, k}について計算し、大きいものからn個とっていけばいいです。 普通にDPすると案の定TLEなので、僕は必要となる{m, k}の組がせいぜい2n個であることに注目し、遅延評価しました。 #include <cstdio> #includ</cstdio>…

Codeforces #121 Div1 D. Metro Scheme

(辺の数が奇数の頂点数)/2本の線は最低でも存在する事がすぐ分かります。 また、どのような線と円の置き方をしても、そこから線を結合(a~bという直線とb~cという直線をa~cという直線で置き換える)するという動作だけでその本数まで直線を減らせる事がわかり…

Codeforces #121 Div1 E. Lucky Array

解法としては平方分割です。 本来ならadd,count共にO(√n)ですが、countにはラッキーナンバーの数、30個程度が定数として掛かります。 よって最悪ケース、つまりすべてcount(2, n)ならば √n*m*30で約100000000、平方分割の定数もあって危ないです。 僕は絶望…

Coreforces #157 Div1 D. Little Elephant and Broken Sorting

n,m=1000なのでnmかな〜〜と言った感じで考えてたら解けました 結局O(nm)ですね多分 汚いプログラムになってしまいましたが、 dp[i][j](i<j):その時に考えられる数列のパターン(2^m通り)のなかで、i番目がj番目より大きくなっている物の可能性、割合 #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> …</sstream></vector></set></algorithm></iostream></ctime></cstring></cmath></j):その時に考えられる数列のパターン(2^m通り)のなかで、i番目がj番目より大きくなっている物の可能性、割合>

2013年振り返り

振り返ります。 顔本はあまり得意ではないのでこちらに。 受験以外 twitterを始めました。 勉学面では完全にマイナスですが、いろんな人と会話できたりして得た物はあるんじゃないかな???と信じたいです。 セルフヘェラ。 競技プログラミングを始めました…