日記N+1

日記N+1

とりあえずKaTeX入れました
同志記事: http://boson.fock.space/2016/11/bloggerkatex.html

f^(x)=i=0n1f(ζni)xi \hat{f}(x) = \sum^{n-1}_{i=0}f(\zeta_n^i)x^i

書きたい欲を満たした何か。1


最近なんとかFFTを理解して基本的なFFT問題をひとつAC
https://atc001.contest.atcoder.jp/submissions/2025702

そのうちFFTの勉強法記事書こうと思うんですが、
「一番わかりやすいFFT解説」か「FFTの勉強法紹介」にするか考えています
前者のような記事が存在しないと思っているので、個人的にその先駆者として君臨したいなというのがあります。

NNTも無事わかったのでJOI18ho後にでも書きます

最近のAC復習

ARC089でAtCoder青になった
CSAもはやく青復帰したい
「青になる道のり」みたいなのは別に書きません!
ecasdqinaが書いてくれるので待機しとこう

ARC089

C

ログが正しいものか見るやつ

yukicoder:627 ランダムウォークの軌跡に似てる

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;
}

tubo28という方の提出を参考にしました3

言いたいことはわかるけど難しい
cppreferenceをもっと読まないと…

おそらくc++14以上向けになっていると思うので、POJとか考えると各バージョン向けのテンプレを作りたくなりますね

このままだと空じゃかけない…

プレゼント

特別…ですよ?

はむこさんのwiki - 神への近道

はまやんさんのまとめ - 神からの贈り物

おしまい

JOI本選にもっていくテンプレをそろそろまとめようと思います!

エカスドの作問で手伝ったものの解説などを書いています、完成が楽しみですね!


  1. \hatを知らなくてggってたら疲れた ↩︎

  2. ちなみにこれ無断でやっていいのかなという考察はありますがテクは良さそうみたいには思いますがとりあえず本人に聞いてみようと思いますいつか。提出コード自体には著作権があるという話なはずです(それはそう) ↩︎

  3. 今確認したら片思われという超申し訳ないことになっていたので早急にふぉろばした ↩︎

このブログの人気の投稿

YouTube Iridiumの紹介

うくこん

TDPC - T フィボナッチ