Pajraの雑記

日々の所感を綴ります。

ABC179に参加しました

先週の記事で”この先3週間はABCなさそう”などとほざいていましたが、今週も開催されました。Atcoderさんありがとうございます。

結果

取り敢えず結果を載せます。

 全体の感想

先週に続き4完、それもEを通したことでパフォーマンスが大幅に上がり、念願の水Perfを叩き出しました。8月いっぱい冷えていたせいで夏休み中の入緑は無理かと思っていましたが、この流れに乗って一気に到達したいところです。

A問題

与えられた文字列Sの最後の文字がsならesを、それ以外の文字ならsをSの最後尾に付加して出力せよ、という問題です。strlen()などを利用してSの長さを取得し、最後尾の文字によって条件分岐させればよいですね。

B問題

2つのサイコロを何回か振って、ゾロ目が3回連続で出たかを判定する問題です。フラグ用変数を用意しておいてそれが3になった瞬間Yesを出力、最後まで3にならなければNoを出力すればいいですね。ところでタイトル「Go to Jail」の元ネタはモノポリーでしょうか、コンテスト中にクスリとしました。

C問題

与えられた自然数Nに対し、A\times B+C=Nを満たす自然数A,B,Cの組み合わせを求めよという問題です。A\times B=N-Cと考えると、A\times BN未満の時Cは一意に定まるので、A=1,2,\ldots .に対してBが何通りの値をとれるかを数えればよいですね。

D問題

初見では全く分からずE問題を解いてから帰ってきて、動的計画法を使うのかな?と思いついたのですが時間計算量が巨大になってしまったため断念。解説を読んでもよくわからないので要勉強ですね。

E問題

この手の問題は過去問でも何回か見かけていたので、すぐに「余りがループするやつだ」ということは分かったのですが、そこから実際にコードを書くのに一苦労しました。現時点ではACしただけで万々歳ですが、いずれは手際よく書けるようになりたいです。

 

最後までお読みいただき、ありがとうございました。