/\/\/\/

atcoder.jp

まず最初勘違いしていましたが、奇数<偶数である必要はないんですよね

ですから、mapなどを用い

奇数の列で1, 2番目に多い a1, a2と

偶数のそれ b1, b2 を用意して基本a1とb1

a1==b1だったとき、max(a2, b2)をa1またはb1の代わりに用いればよいです

ただし、コーナーケースとして、a2, b2が存在しないときはn/2を出力します

またa2が存在しない場合はb2を、b2が存在しない場合はa2を用います

atcoder.jp

abc171-v

atcoder.jp

A

'A'-'a'

B

sort

C

ややこしい。

n-=(n%26==0?26:n%26);

n/=26;

D

mapを使ってずる

まあずるではないけど

Dのほうが簡単

E

こどふぉでやったことあるような問題が出てきましたねぇ

CodeForcesとか、Codechefはこういう問題が好きな傾向がある

さて、これは累積XORみたいなもの

N=4の場合で考える(累乗になるのでXORをxとしています)

a2 x a3 x a4, a1 x a3 x a4, a1 x a2 x a4, a1 x a2 x a3

みたいな書かれ方をしているこれを便宜上

p1, p2, p3, p4とする

ここで、p2 x p3 x p4=a1となる!

それはすなわち、(すべてのXOR) xor p1=a1ということ!

だから、O(2*N)で求められる!

ただ、いまいちNは偶数という制約の意図が分からない

追記:)Nが奇数のとき

N=3のときを考えると

a2 xor a3, a1 xor a3, a1 xor a3 より

p2 xor p3=0!=a1となるので、バグってしまいます

drken1215.hatenablog.com

F

うわ、文字列の挿入...

これは、もちろん全探索は不可能ですね

ですので組み合わせ数を数える形になると思います

個人的に方針は二つあり、

(i) 実際に位置確認しつつ挿入後の形を予想

(ii) 全通りからsの順含む文字列を引く

(i)は出来なさそうだし、(ii)は被るパターンがある

例えばサンプル1だったらooooooofとかは被る

難しいね

解けません

展望

初めてEが解けた!

うれしいね♪

abc200

A

やる

B

やる

C

*5%1000

D

難しい

全列挙は2200=1060なので不可能

同様に半分全列挙も不可能

累積和・区間和は隣接したものを選ぶとは限らないので不可能

思いついた!

200 * 200 なら間に合いますね

なのでvectorで駒を管理し、前から順にやっていけばよいです

だが、これは有無しかわかりません

なのでvector<vector>を用い、組み合わせをぶち込んでいけばいいです

この中に入るのは一つの組み合わせだけなので余裕ですね

E

何言ってんだこいつ

展望

D問題が安定して解けるようにならなければならないなと思いました

abc080

atcoder.jp

virtual

A

やる

B

やる

C

え、そもそもの(問題文の)日本語が難しい

理解するのにとんでもなく時間かかった

うーん、まず全探索を考える

bit全探索を用いると[tex:O(210)]位になると思うのだが間に合うだろうか

TLEのみ心配だったけど普通に高速でした

D

区間スケジューリング問題->貪欲法かDPの匂い

制約の一つ、S-0.5の部分は面倒なので、

s_i=t_j(i!=j)の時、録画機は2つ使う必要がある

でも、チャンネルが同じならば連続録画が可能である

と置き換えると、始点と終点のみに着目して計算していけば良さそうであることが容易に理解できる

それを時間でsortしていけばいいとわかる

さて、まず使うデータ構造だが、配列だと厳しいところがありかつsortする必要があるのでpriority_queueを、時間は「始まりか終わりか」「何のチャンネルか」という3つの要素が必要であるからtupleを使用する(tupleにしたのはqueueの型をvectorにするときの挙動がわからなかったため、pairであれば分かるので要素数も定まっているしtupleを用いようと思った)

また、今各チャンネルについて録画をしているか否かを判定するhantei、今使用している録画機の数curを設ける

多分一番の肝となるのは「終点と始点が重なったとき」の処理だろう

だが、これを処理するのは案外簡単で、

同じチャンネルで複数のテレビ番組が同時に放送されることはありません。

という制約を利用することにより始点優先ソート(おそらく昇順ソートなので始点を0、終点を1と保存)にしておいてhanteiを用いすでにそのチャンネルが録画されているときは追加しないとすればよい

かなりいかれたコードが出来上がった(多分自分が今までに書いたコードで一番汚い)が、WAを食らった

しかも1つのテストケース(04.txt)だけで食らっているのでおそらくコーナーケース

なのでひたすらいろんな自作ケースを与え、コーナーを探す

そしたら恐らくこれというものが見つかりました

4 3
1 4 1
2 6 2
4 8 1
6 10 3

t=6の時、録画機は3台使われている必要がありますが、2と出力された

なので現在時刻を管理するnowなどが必要になります

紆余曲折あり、なんとかAC

つらかった...

Submission #22327988 - AtCoder Beginner Contest 080

展望

もっと問題を解くのが早くなるといいね

abc067

リンク貼るのさえ億劫になってしまった

A

hi

B

hi

C

abs(a[i]*2-a[n-1])を累積和

ぺな出す病気なのでぺな出した

ただ、この辺りまで自明になってきたのは素晴らしい

D

うわっ、グラフやんけ...

きちんと考えればそんなに難しくはなさそう

このグラフは木なので全部つながっている

なので、塗られていない点を探し出せばよい

ただし、幅優先探索もしくは深さ優先探索を使う

自分は使えないので解かない(は?)

all

グラフの探索ができない

Union-find木は使えるようになりましたが、早めにBFS・DFS習得しないと先が見えない、やばいです

ABC098 所感

atcoder.jp

A

やる

B

よくわからんけど二つmapでもったらACした

かなり難しいB問題、実装が重い?

C

さっきの問題より簡単

累積和で'E'と'W'を持てばよい

リーダーより左は'E'、右は'W'を向く

(ちょっとしたミスで1ぺな出しちゃった♡)

D

わからん

展望

えええ