日記N+1
日記N+1
とりあえずKaTeX入れました
同志記事: http://boson.fock.space/2016/11/bloggerkatex.html
書きたい欲を満たした何か。1
最近なんとかFFTを理解して基本的なFFT問題をひとつAC
https://atc001.contest.atcoder.jp/submissions/2025702
そのうちFFTの勉強法記事書こうと思うんですが、
「一番わかりやすいFFT解説」か「FFTの勉強法紹介」にするか考えています
前者のような記事が存在しないと思っているので、個人的にその先駆者として君臨したいなというのがあります。
NNTも無事わかったのでJOI18ho後にでも書きます
最近のAC復習
ARC089でAtCoder青になった
CSAもはやく青復帰したい
「青になる道のり」みたいなのは別に書きません!
ecasdqinaが書いてくれるので待機しとこう
ARC089
C
ログが正しいものか見るやつ
D
市松模様系
自明な言いかえして累積和とる
累積和は実家なので。
市松関係でおすすめのPCK17ho-6問目
AOJ:市松模様
本選で爆速で解けた思い出がある
つまり累積和も市松模様も実家というわけである
初黄パフォだった
過去コンテストは青パフォばっかりでした、険しさを感じます
CSA Round #66
https://csacademy.com/contest/round-66/
二部マッチング帰着しきれなった、くやしい!!!
SHコン
企業コンテスト
またも二部マッチングを落とした。
基本問題で蟻本のやつより簡単だった
終わった後Dやってみたんだけど1h33mかかった
最近僕が強く意識するべきなのは「実装しやすい考察をする」ことだなと思った
Eはまた今度。
ARC090
2完
Cは日本語読解コンテストだとして
Dの考察が雑すぎた。
「なんかダイクストラっぽく見ていって~」
と雑なことを考えた
「すべての辺を満足させたい」
「すべての辺を見れる探索をなにかすればいい」
といった考察を目指すべきだった
DFSという人が多いがBFSでもなんでもいい
E
解説見たらdp1とdp2を作ることはできていて、過不足なく数えるところができていなかった
多少時間がかかっても、「数え上げ問題は、対象が何を数えているものか日本語で書く」ことをしようと思った
時間がかかってACするのと、時間かけずに嘘解法書くのはどっちがいいかはっきりしているからね。
F、これはまた今度。
数学ガール借りてきた
数学ガール/乱択アルゴリズムを読み終え、すごく良かったので最初から読もうと思った
ちなみに試しに関係ない「数学のセンスをつける!」みたいな本読んでみたけど、数学嫌いの文系のための本みたいな感じで、自分に合わなかった
数学ガールとてもいいですね
いま母関数というのを新しく知ったんですが、
FFTやきたまさ法をするときによく使うので名前が知りたかったみたいなところがあり、すごく感動しました
やっぱ数学は出会いの連続だな!!
数学をいままで以上に好きになれたのは競プロのおかげかな
あとecasdqinaとロマ数いきたいにゃ!
テンプレートをだいぶ変えました
競プロのテンプレはvimrcと一緒に管理しています
https://github.com/LumaKernel/vimfiles/blob/master/snippets/cp-cpp/temp.snip
ハイライトだけ紹介!
cout と vector
template <typename T> ostream
&operator<<(ostream &o, const vector<T> &v) {
o << '{';
EACH(i, v)
o << v[i]
<< (i != v.size()-1 ? ", " : "");
o << "}";
return o;
}
EACHは心の目で読んでください
はむこさんの提出を参考にほぼそのまま。2
dumpを可変長に
#ifdef DEBUG
#define dump(...) cerr<<"["<<__LINE__<< "] "<<#__VA_ARGS__<<" = "<<make_tuple(__VA_ARGS__)<<"\n";
#else
#define dump(...)
#endif
template<int n, class...T>
typename enable_if<(n>=sizeof...(T))>::type
_ot(ostream &, tuple<T...> const &){}
template<int n, class...T>
typename enable_if<(n< sizeof...(T))>::type
_ot(ostream & os, tuple<T...> const & t){
os << (n==0?"":", ") << get<n>(t);
_ot<n+1>(os, t);
}
template<class...T> ostream & operator<<(
ostream & os,
tuple<T...> const & t
){
_ot<0>(os, t);
return os;
}
言いたいことはわかるけど難しい
cppreferenceをもっと読まないと…
おそらくc++14以上向けになっていると思うので、POJとか考えると各バージョン向けのテンプレを作りたくなりますね
このままだと空じゃかけない…
プレゼント
特別…ですよ?
はむこさんのwiki - 神への近道
はまやんさんのまとめ - 神からの贈り物
おしまい
JOI本選にもっていくテンプレをそろそろまとめようと思います!
エカスドの作問で手伝ったものの解説などを書いています、完成が楽しみですね!