保存されている過去のバージョンの一覧
2021年06月07日18時11分38秒
2020年11月01日09時37分06秒
2020年03月25日01時52分41秒
2019年11月02日11時08分07秒
2019年08月10日16時38分38秒
cLay - 過去の更新履歴
過去の更新履歴
- 20210227-1:
【機能追加っぽいの】
(a, b, c) *= (f(m, n) + k * (b, c, a) + (s, t)) % 100; のような記述を強化した.
Modint, modint, Mint, mint でインクリメント・デクリメントができるようにした.
【バグ修正っぽいの】
関数のオーバーロード operator 系が関数とみなされない場合があるのを暫定修正. - 20210223-1:
【機能追加っぽいの】
配列のサイズを省略して初期化もない場合,直前に確保した配列のサイズになるようにした.
maxRectArea() を追加.
TSP_path() を追加.
graph構造体に getDistPairMatrix() を追加.
【バグ修正っぽいの】
Arr1d で sHist の計算済みフラグのリセットを忘れていたのを修正.
if(c == '"') のようにシングルクォーテーションの中のダブルクォーテーション,またその逆,の扱いを修正.
Prime() でメモリ確保が変だったのを修正.
sum[]() とか max[]() とか bsearch_max[]() とか入れ子になっているとうまく動かなかった場合があったのを暫定修正.だいぶマシになったはず?(sum[]()系を入れ子にして型を指定しないとうまく動かない,計算量悪化する可能性あり,怪しい場合は型を指定してください)
auto, decltype(hoge) を型名として認識するように.
auto func(int a) -> decltype(piyo) { return 1; } みたいに関数の返す型を指定したとき死んでたのを回避.
【その他っぽいの】
Arr1d構造体について使用した機能以外は埋め込まないようにした(出来上がるソースコードが短くなるはず).
- 20210103-1:
【機能追加っぽいの】
graph_minColor() を追加.
graph構造体に longestPath_length() を追加.
xorMin(), xorMax() を追加.
TSP_path_s() を追加.
fenwick_xor を追加.
segtree_Point_Or, segtree_Point_And, segtree_Point_Xor を追加. - 20201229-1:
【機能追加っぽいの】
rollingHashを追加. - 20201228-1:
【バグ修正っぽいの】
chineseRemainder() が バグってた のを修正. - 20201227-1:
【機能追加っぽいの】
FFTを追加(というかconvolutionの中で呼び出していたものを単体で使えるように).
Arr1d構造体に dHist(T x, T y), sHist(T x), sHist(T x, T y) を追加.
【バグ修正っぽいの】
extendedEuclidがバグってたのを修正.ついでにドキュメントも正確じゃなかったので微修正.
Arr1d構造体のデストラクタでprevLT, nextLT系の処理をし忘れていたのを修正. - 20201206-1:
【機能追加っぽいの】
static_segtree_Add_At 構造体を追加.
LIS_ends(), weaklyLIS_ends() を追加.
smallestSubsequenceLengthK() を追加.
【バグ修正っぽいの】
Comb構造体の C_s() に関して,Modint系を使う場合,割り算の回数を減らすようにした. - 20201205-1:
【機能追加っぽいの】
graph構造体に anUndirectedCycle() を追加.
【バグ修正っぽいの】
readerFile() と rdLine() を両方使うとバグってたのを修正.
minCostFlow に取り敢えずポテンシャルを導入して,枝が非負のときに多分酷いことにはならないように.ついでにコストが0以外のある値未満の間流し続けるという機能を追加(引数にclimを追加). - 20201123-1:
【機能追加っぽいの】
subsetSum(), subsetSumS(), subsetSumSD() を追加.
Arr1d 構造体に prevLE(), nextLE() 系列を追加.
wgraph 構造体に getDist01() を追加. - 20201121-1:
【機能追加っぽいの】
HashMap 構造体を追加.
segtree_rh 構造体に二分探索する関数 max_right() と min_left() を追加.
【バグ修正っぽいの】
C++のソースコードを吐き出すときに書かれるversionのスペルがvarsionになっていたのを修正. - 20201115-2:
【機能追加っぽいの】
HLD_segtree に枝に重みが載っていると思った場合の各種関数を追加. - 20201115-1:
【機能追加っぽいの】
wgraph構造体に getDistT() を追加.
出力時に配列を展開しない Wt(), Writer() 系を追加.
引数1つの floor_sum2(ll a) を追加.
切り上げ割り算 /+ を /+= の形でも利用可能にした.
三分探索っぽいもの tsearch_min[][]() 系を追加.
【バグ修正っぽいの】
minCostFlow で flim=-1 以外に設定した時の挙動がおかしかったのを修正.
0x1, 0X1, 0b1, 0B1 などを 0*x1 など掛け算に展開しないようにした. - 20201102-1:
【機能追加っぽいの】
rollbackUnionFind 構造体を追加. - 20201101-1:
【機能追加っぽいの】
Mex() を追加.
twoMultisets に getMin(), getMax() を追加.
walloc1d(), walloc2d() に範囲を指定してメモリを確保するのを追加.
【その他っぽいの】
高速ゼータ変換関連をちょっと高速化. - 20201031-1:
【機能追加っぽいの】
AhoCorasick, AhoCorasick_Sum で addWord したときTrie木の終点のノード番号を返すようにした.
twoMultisets 構造体を追加.
【バグ修正っぽいの】
Polynomial構造体で確保メモリの更新を忘れてるバグを修正.
AhoCorasick構造体でメモリの確保する量を間違えていたバグを修正. - 20201026-1:
【機能追加っぽいの】
min[](), max[]() 系の機能を書き直して,範囲の指定方法を拡張して,sum, mul, gcd, lcm を追加.
LHeap の malloc, walloc にメモリ確保と同時に init を走らせるものを追加.
segtree_Point_Maxval を追加.
【バグ修正っぽいの】
remove_reference<>, numeric_limits<> に関して <, > を不等号と認識しないようにした(上のmin[]()系の機能中で使うに困ったため). - 20201018-2:
【機能追加っぽいの】
TSP_cycle() を追加.
sortV(), rsortV() 系列を追加. - 20201018-1:
【機能追加っぽいの】
汎用的なsegtree(segtree_pg, segtree_rg)を作り直したもの segtree_ph 構造体,segtree_rh 構造体を追加(Thanks tailsさん).
【バグ修正っぽいの】
等式,不等式の条件を続けるときに && を省略できます機能で,| や & も || や && と同様な扱いにした(Thanks tailsさん).if(a < b | c < d) はそのままで if(a < b | c && b | c < d) にならなくなった.(ポインタ関係の & を使うとまずいことがあるかも…) - 20201003-1:
【機能追加っぽいの】
rd_string() を追加.
Comb 構造体に dfac, pw2, pw3, pw10, repunit を追加.
【バグ修正っぽいの】
rd_ll() が使えなかったのを修正.
rd(x ? y : z), wt(x ? "hoge" : "piyo) など三項演算子が絡むときに型の推定が x の型になって入出力できなかったのを修正(とりあえず型不明→全型の関数を挿入するように).
【ドキュメントに追記したもの(元々使えるもの)】
wt() で string型の出力について書いてなかったので追記. - 20200926-1:
【機能追加っぽいの】
Ilog2_f(), Ilog2_c(), Ilog2_s() を追加.
get_inv_mod() を追加.
extendedEuclid() を追加.
chineseRemainder() を追加.
【バグ修正っぽいの】
segtree_rg 構造体で,ヘッダを最初に,本体を最後に挿入するようにして,segtree_rg<int,ll> などが動かなかったのを修正. - 20200920-1:
【機能追加っぽいの】
vecEraseVal() を追加.
Arr1d 構造体に set(int nn, T d[]) と set(vector<T>) を追加.
floor_sum2() を追加. - 20200916-1:
【機能追加っぽいの】
segtree_rg 構造体を追加.
graph 構造体に2ノード間の距離を求める getDist() を追加.
graph 構造体に TreeDiameter() を追加. - 20200913-1:
【機能追加っぽいの】
fDiv(), cDiv() を追加.
floor_sum() を追加.
Add1d 構造体に dHist() 系列の関数を追加. - 20200911-1:
【機能追加っぽいの】
//interactive のフラグを追加.
Arr1d 構造体を追加. - 20200906-1:
【機能追加っぽいの】
VI で vector<int>, VII で vector<VI>, VIII で vector<VII> になるようにした.
int @A; などで変数宣言時に入力から読み込む機能を追加.
rd_ll() を追加.
HammingDistance() を追加.
【バグ修正っぽいの】
変数名に _ が含まれている場合,型を上手く取得できてなかったのを修正.
editDistance でワーキングメモリを返さないのを修正.ついでに,引数で使うメモリを指定できるように. - 20200509-1:
【機能追加っぽいの】
next_mcomb(), next_scomb(), next_marr(), next_sarr(), next_sarr_s() を追加.
特殊なループ rep_perm, rep_scomb, rep_mcomb, rep_sarr, rep_marr を追加.
【バグ修正っぽいの】
rep でループ変数が配列の要素など,[] や () や . など(アルファベット,数字,アンダーバー以外)を含んでいた場合にうまく動かないのを修正.
bsearch_min, bsearch_max を入れ子にすると順番次第でバグったのを修正. - 20200430-1:
【バグ修正っぽいの】
graph 構造体の preorder() において,枝を格納した順に使用してdfsするように修正. - 20200419-1:
【機能追加っぽいの】
strReplace() を追加(同時に何個も置き換えるのも).
DistinctE() シリーズを追加.
isSubstring() を追加.
graph 構造体に getDistTree_WeightedNode_max() を追加. - 20200418-1:
【バグ修正っぽいの】
graph構造体の SubTreeSize(), SubTreeWeight() がバグっていたのを修正. - 20200412-1:
【機能追加っぽいの】
rd(arr(x,y)), wt(arr(x,y,z)) などで2次元以上の配列の入出力に対応した.
graph構造体に SubTreeSize() と SubTreeWeight() を追加した.
【バグ修正っぽいの】
graph構造体の reverse() がメモリ確保する場所を間違えていたのを修正.sccなども内部でreverseを使っていたのでバグってた.
return a ** b や return (a+b) /+ c などがうまくパースできてなかったのを修正. - 20200408-1:
【機能追加っぽいの】
Kth0(), Kth1() シリーズと KthA() を追加. - 20200404-1:
【バグ修正っぽいの】
hoge_hoge ** 2 のように,** や /+ の左辺に _ が含まれているとパースに失敗していたのを修正. - 20200325-1:
【機能追加っぽいの】
二項係数 mod 2を求める Cmod2() を追加.
arrCountVal() で配列 A と値 val の型が違う場合も利用できるようにした.
Trie 構造体を追加.
isPalindrome() を追加.
graph 構造体に Grundy() を追加.
【バグ修正っぽいの】
doubleの出力で isnan() を使わないようにしたのが元に戻っていたので修正と,isinf() も同様に使わないようにした.
doubleの出力で,10の冪ぴったりに近い数を出力する際に,バグることがあったのを修正. - 20200321-1:
【バグ修正っぽいの】
(絶対値が1より大きい)double の出力がバグっていたのを修正. - 20200317-1:
【機能追加っぽいの】
graph 構造体において,指定したノードを通る最短の閉路長を求める shortestUndirectedCycle_length() を追加.
【バグ修正っぽいの】
doubleの出力で,isnan() を使っていたのをやめた(一部環境でコンパイルエラーになってた). - 20200314-1:
【機能追加っぽいの】
counterD2SumIsLT(), counterM2SumIsLT() を追加.
counterD2ProdIsLT(), counterM2ProdIsLT() を追加. - 20200308-1:
【機能追加っぽいの】
reader(), writer() において,double 型の入出力を scanf(), printf() に頼らず1文字ずつ処理する方式に変更.
reader(), writer() において,getchar_unlocked(), putchar_unlocked() の代わりに fread_unlocked(), fwrite_unlocked() を使うようにした.ただし,reader() と scanf(), cin などと混在している場合は,従来通り getchar_unlocked() を使う.readerFile() などを使う場合も従来通り getchar_unlocked() を使う.
writer() で double型を出力する場合の桁数を取得,指定できる writerDigit_double() 関数を追加.
segtree_Add_Minval を追加.
segtree_pg を追加.
【バグ修正っぽいの】
//no-unlocked を指定していても,一部で putchar_unlocked() を使う可能性があったのを修正.
writerFile() で fclose() をうまくできていなかったことがあったのを修正.
ZetaTransform_max() の関数が挿入されず,使用できなかったのを修正.
関数のプロトタイプ宣言がうまく動かないことがあるのを応急処置. - 20200227-1:
【機能追加っぽいの】
isLeapYear(), numOfDaysInMonth(), dayOfWeek(), dayOfWeekStr() において,年を表す引数の型を変更.
prevDay(), nextDay(), dayIndex(), dayFromIndex() を追加.
fenwick 構造体にメモリ確保しつつ初期化する機能を追加.
unionFind 構造体にメモリ確保しつつ初期化する機能を追加.
Distinct() を追加.
【バグ修正っぽいの】
(a, b) >?= c, (a, b) <?= c ができなかったのを修正.
gcd() や max() などが入れ子になっている,かつ,配列を使用している場合(例えば max(2, 100 / max(A(N))) など)にバグる場合があったので暫定的な処置を行った. - 20200217-1:
【機能追加っぽいの】
counterProdIsLT() を追加. - 20200214-1:
【機能追加っぽいの】
全ての桁を求めるDigit()を10進数のとb進数のを追加.
各桁の値から10進数,b進数の値を求めるinvDigit()を追加.
__int128_t と __uint128_t を rd(), wt() で読み書きできるようにした.
(a1,a2,...,an) += (b1,b2,...,bn); または (a1,a2,...,an) += b; の形で複数の演算を一度に行う機能を追加.
【バグ修正っぽいの】
10 ** 8 とかやると,(以降使わない変数だけど)内部で10^8 * 10^8をやっていて,一部環境(LeetCodeなど)でsignedのオーバーフローでRuntime Errorになるのを修正.
ZetaTransform(), ZetaTransform_min(), ZetaTransform_max(), MoebiusTransform() で引数省略すると型が推測できずに使えなかったので修正(上書きする場合の関数を別に作成).
【ドキュメントの修正】
Digit() の戻り値を間違えていたのがあったので修正. - 20200119-1:
【機能追加っぽいの】
Grid2d 構造体に getDist4_BFS() を追加.
IntMap 構造体を追加.
ソースコード中の括弧の対応関係などが取れてなくて,ソースコードの最後まで見つからなかった場合,配列外アクセスで落ちてたのを,どこで見つからなかったか表示するようにした.
【バグ修正っぽいの】
gcd(), lcm(), reduceFraction() が引数の型が異なっていたときに動かなかったのを修正.
Modint型,modint型に負のint型,ll型の値をキャスト,代入するとバグっていたのを修正.
Mint型,mint型に負のll型の値をキャスト,代入するとバグっていたのを修正.
それぞれModint型,Mint型のみを利用している(modint型,mint型を利用していない)とき,rd()でModint型,Mint型を読み込めないのを修正. - 20200112-1:
【機能追加っぽいの】
Grid2d に getDist4() を追加.
Permutation 構造体に getIndex() を追加.
arrInsert() の4つの配列に要素を挿入するものを追加.
【バグ修正っぽいの】
bsearch_min[] などの中で max(), sum() などを使うとバグってたの修正.
KMP() で引数 res を省略するとtemplateのSの型を推定できず試用できなかったのを修正. - 20191227-1:
【機能追加っぽいの】
//working_memory=200m などでワーキングメモリのサイズを指定できるようにした.
rangeTree2d, rangeTree2d_nw を追加. - 20191125-1:
【バグ修正っぽいの】
HLD_segtree を使用したときに, <?= の機能が勝手に挿入されないのを修正.
メモリアライメント周りの修正を個なったときに,walloc2dの中でwalloc1dを使うようになったのに,walloc1dの機能を挿入していなかったのを修正.
bsearch_min[] などの中で一時的に使っている変数 x に対して 2x など * の省略を行うと,正常に一時的な変数を置換できていなかったのを修正. - 20191123-1:
【機能追加っぽいの】
powmod() を追加.
primitiveRoot() を追加.
mint, Mint, modint, Modint 型に対する convolution() を追加.
segtree_ChangeP1add_Sum<T> を追加.
arrCountVal() を追加.
【バグ修正っぽいの】
<?=, >?= の左辺がに , が含まれてるとバグるのを応急処置. - 20191111-2:
【バグ修正っぽいの】
bsearch_max と if[] の処理の優先度を変更(bsearch_max の中で if[] を使うとバグってた). - 20191111-1:
【機能追加っぽいの】
editDistance() を追加.
counterSumIsLT() を追加. - 20191110-1:
【機能追加っぽいの】
Permutation 構造体に cycle_len_EachElement() を追加.
【バグ修正っぽいの】
Permutation でべき乗演算子を使うとバグってた場合があったかもしれないのを修正. - 20191108-1:
【機能追加っぽいの】
break_break, break_continue, break_break_break, break_break_continue などを追加.
arrEraseVal() を追加.
【ドキュメントに追記したもの(元々使えるもの)】
Rand構造体の getUni() を追記. - 20191102-1:
【機能追加っぽいの】
Comb 構造体に C_s(), P_s(), per_s() を追加.
【バグ修正っぽいの】
runLength() で引数の val, len の片方のみが NULL の場合にバグってたのを修正.また,内部的にvoid *型にして NULL をキャストなどしなくても引数に直接指定できるようにした. - 20191027-1:
【機能追加っぽいの】
rep[]() などを追加(rep, REP, rrep, RREP に [] 引数の追加).
mint, modint, Mint, Modint のコンストラクタで,0 で初期化されるようにした.
runLength() で val, len に NULL を指定できるようにして,デフォルトを NULL にした. - 20191012-1:
【機能追加っぽいの】
graph, wgraph に setEdgeRootedTree() を追加.
Mint, Modint 型を追加. - 20191006-1:
【機能追加っぽいの】
dimcomp2, dimcomp3, dimcomp4, dimcomp5 を追加. - 20190929-1:
【機能追加っぽいの】
template<class T> int Factor(T N) を追加.
graph に shortestCycle() を追加. - 20190928-1:
【機能追加っぽいの】
InnerProd() を追加.
ll型の CrossProd(),LineIntersection_size() を追加.
【バグ修正っぽいの】
rd() でull型のデータを読み込もうとするとき,間違えてll型の rd() が挿入されるのを修正. - 20190925-1:
【機能追加っぽいの】
Permutation を追加.
knightDistance() を追加.
dayOfWeek(), dayOfWeekStr() を追加.
【バグ修正っぽいの】
Matrix で = で代入するとメモリを確保しなおすことがあるのを修正. - 20190921-1:
【機能追加っぽいの】
rep の機能はそのままに,REP の機能を変更.
rep(i,a,b,s), REP(i,a,b,s) を追加.
rrep(n), rrep(i,n), rrep(i,a,b), rrep(i,a,b,s), RREP(n), RREP(i,n), RREP(i,a,b), RREP(i,a,b,s) を追加.
graph の reduce() を微修正(メモリアライメントまわり).
graph に preorder() を追加.
graph に articulation() を追加.ただし真面目にverifyしてない.
graph に bipartite() を追加.
graph に maxIndependenceSet(), countIndependenceSet() を追加.
wgraph にヒープを使わないナイーブなダイクストラ getDistDense() を追加(なんか速くない気がする…).
unionFind に size() を追加.
Isqrt(), Isqrt_f(), Isqrt_c(), Isqrt_s() を追加.
Icbrt(), Icbrt_f(), Icbrt_c(), Icbrt_s() を追加.
segtree_Point_Minval, segtree_Point_Min を追加.
inline int BIT_popcount(int x), inline int BIT_popcount(ll x), inline int BIT_ctz(int x), inline int BIT_ctz(ll x) を追加.
BIT_ith(a,b) を追加(引数が2個のやつ).
arrRot() を追加.
DivisorSum() を追加.
Moebius() を追加.
【ドキュメントに追記したもの(元々使えるもの)】
rep(n), REP(n) について書いてなかった(その後,REP(n) については機能を変更).
rd などで A[2], A[3], A[4] に読み込むなど,配列の途中から読み込む場合について記述した.
BIT_ith(i) の説明を変更(引数が明らかに31以上の場合). - 20190914-1:
【機能追加っぽいの】
segtree_Point_Prod を追加.
Matrix の各要素を rd, wt で入出力できるように.
【バグ修正っぽいの】
segtree 系で,最小値を取る要素のインデックスを求める配列のnewで型間違えていたのを修正.
segtree 系で,getSum, getMin, getMinVal の実装方法を変えてより多くの型(T)で動くようになったはず.また,演算が可換でない場合にも対応したはず.例えば,Matrixを要素に持てる.ただし,少し遅くなったかも.
ローカル変数にも勝手に inplace_L を付与することで,初期化でうまくいかなくなってたのを応急処置.
【その他っぽいの】
version 20190912-1 で x ** y の仕様を変更していたのを書いてなかったのを修正. - 20190912-1:
【機能追加っぽいの】
segtree_Point_SumMin,segtree_Point_Minval2, segtree_ChangeAdd_Sum を追加.
Explode(), Implode() を追加.
【バグ修正っぽいの】
入出力 rd, wt で unsigned int,unsigned long long 型に対応.
size_t を型として認識するように.
uint, ulong を型として認識するように.ついでに,signed int と int と signed のように表記が揺れるやつの対応を強化.
int[x]_t, uint[x]_t ([x]=8, 16, 32, 64)を型として認識するようにした.
__int[x]_t, __uint[x]_t ([x]=8, 16, 32, 64, 128)を型として認識するようにした.
bitset<n> を型として認識するように.
変数宣言の際,extern, register を認識するように.
変数の初期化を伴うコンストラクタの書き方に対応(hoge() : piyo(0) {} のようなやつ).
set<int>a; のように,型名と変数名の間にスペースがない場合にバグってたのを修正.
wt() の中に関数などを書いても,ある程度うまくいく仕組みを入れた(本来は不要な型のwtを挿入することもあってコードは無駄に長くなることがある).
【その他っぽいの】
segtree の内部で,malloc, free のかわりに new, delete を使うようにした.
ローカル変数にも inplace_L をデフォルトで適応するようにした.
x ** y で x, y ともに double 型のとき pow(x,y) を呼び出すようにした. - 20190902-1:
【機能追加っぽいの】
Polynomial構造体を追加.
ラグランジュ補間 polationVal(), polationPoly() を追加.
【バグ修正っぽいの】
graph で TopologicalSort() が使えなくなっていたのを修正. - 20190830-1:
【機能追加っぽいの】
rd_int() を追加.
【バグ修正っぽいの】
負の整数をmint型に変換したときにバグってたのを修正. - 20190829-1:
【機能追加っぽいの】
arrInsert() を追加.
arrcmp() を追加.
Heap, Heap_max の push() に戻り値を設定.
reader, writer の入出力に vector, Grid1d, Grid2d を対応.
graph に cntShortest を追加.
Hungarian() を追加.
高速ゼータ変換 ZetaTransform() を微修正.最小値,最大値を求めるもの ZetaTransform_min(), ZetaTransform_max() を追加.
sortA() に配列1個のものを追加.rsortA() を追加. - 20190827-1:
【機能追加っぽいの】
intervalSieve() を追加.
isSubsequence() を追加.
slideMin(), slideMax() を追加.
sum() において,string型に対応.
【バグ修正っぽいの】
hoge ** piyo で,piyo の部分に _ が含まれているとうまく動かなかったのを修正.
if文の中などで,''や""に囲まれた ( や ) を使うと,文の区切りの判定をミスるのを修正.
Grid1d において,setSum, getSum の機能がバグって使えなかったのを修正.
【その他っぽいの】
graph, wgraph において,構造体を使っても,構造体内の使ってない関数をある程度挿入しないようにして,ソースコードが短くなるようにした. - 20190822-2:
【バグ修正っぽいの】
wAdjEdge() がバグっていたのを修正.
20190822-1の更新履歴が一部間違っていたのを修正. - 20190822-1:
【機能追加っぽいの】
グラフの隣接リスト(隣接配列?)っぽいのを作る関数 wAdjEdge() を追加.
Heap, Heap_max を追加(機能はほぼpriority_queue).
【ドキュメントに追記したもの(元々使えるもの)】
三項演算子を使わない場合は基本的に , は ; に置き換えられるので,for(;;) i++, break; などと書けることを追記. - 20190820-1:
【機能追加っぽいの】
SuffixArray() を追加.
graph に shortestUndirectedCycle_length() を追加.
【バグ修正っぽいの】
#pragma hoge を判定していなくてバグることがあったのを修正. - 20190818-1:
【バグ修正っぽいの】
maxflowが動かなくなっていたのを修正. - 20190817-1:
【機能追加っぽいの】
コードの先頭に #pragma GCC optimize ("Ofast") を追加するようにした.
演算子 %% に対する %%= を追加.
wgraph に BellmanFord() を追加.
arrErase() を追加.
longestSuffixPrefix() を追加.
【バグ修正っぽいの】
Grid1d の free() で同じ配列を2回メモリ解放しようとするバグを修正. - 20190810-2:
【バグ修正っぽいの】
#undefに対応. - 20190810-1:
【機能追加っぽいの】
Grid1d を追加.
Digit() を追加.
【その他っぽいの】
一部の関数にinlineをつけた. - 20190802-2:
【バグ修正っぽいの】
Grid2dのsetDirMatch()がバグってたのを修正. - 20190802-1:
【機能追加っぽいの】
rdでchar型1文字の入力を追加(実は出力は今まででも可能だった).
1行の入力 rdLine() を追加.
sortEを追加.
graphにトポロジカルソート TopologicalSort() を追加.
wgraphにPrim法による最小全域木の重み和を求める関数 MST_Prim_cost() を追加.
Grid2d を追加.
二分探索 bsearch で,double型の終了条件で絶対誤差,相対誤差を指定できるようにした.
KMP (Knuth-Morris-Pratt) を追加.
FFTを用いた畳み込み convolution() を追加.
ビットに関して BIT_ith(), BIT_get_lowest(), BIT_get_nonlowest() を追加.
【バグ修正っぽいの】
展開の順番を変更.(bsearch_min[]の中で>?=が使えなかったのを修正)
set_a = 1; など書くと,変数宣言と勘違いして set _a = 1; と分解されるのを修正.
【その他っぽいの】
rep(i,a) および rep(i,a,b) で a, b に括弧をつけるようにした.( for(i=a;i<b;i++) → for(i=(a);i<(b);i++) )
主にワーキングメモリまわりをメモリアライメントを考慮して,ところどころ変更した. - 20190721-1:
【機能追加っぽいの】
入出力 rd(), wt() でstring型に対応した.
isPrime() を追加.
【バグ修正っぽいの】
(**なしで)**= を使ったときに,べき乗を求める関数が挿入されないのを修正. - 20190715-1:
【バグ修正っぽいの】
Divisor()を単体で使ったとき,Factor()機能がコードに追加されなくて使えなかったのを修正. - 20190714-1:
【機能追加っぽいの】
AhoCorasick, AhoCorasick_Sum を追加.
isLeapYear(), numOfDaysInMonth() を追加.
isVowel() を追加. - 20190708-1:
【機能追加っぽいの】
HLD_fenwick<T> 追加. - 20190707-1:
【バグ修正っぽいの】
tuple<hoge> を型として認識するようにした.
不等式の展開で < hoge > の形は展開しないようにした. - 20190706-1:
【機能追加っぽいの】
%% 演算子を追加.
入力 rd() で読み込みながらインクリメント,デクリメントする機能を追加.
graph に shortestPath() を追加. - 20190630-1:
【機能追加っぽいの】
class に暫定対応(structと同様の判定をするようにしただけ).
【バグ修正っぽいの】
unionFind 構造体のwallocの戻り値の型が間違ってたのを修正.freeを追加.その他constをつけたりなど微修正.
関数かどうかの判定がバグってた(int operator()(int a){}などが駄目だった)のを修正(unionFindなどが動かなくなってました).
【その他っぽいの】
if(c != a && a==b && b==2) を if(c != a == b == 2) などと書けるようにした(不等式ならできてたけど等式などに関しても && で連結するように). - 20190626-1:
【機能追加っぽいの】
modintを追加.
Matrix<T>を追加.
argmin(), argmax(), argminL(), argmaxL() を追加.
b[]() を追加.
【バグ修正っぽいの】
if[] の展開の優先度を変更(a<b<cがa<b&&b<cに展開するなど他の機能が暴発してた).
関数定義の判定を修正(operator int(void){hoge;}が関数定義に見なされなかったりint(3.2)が関数定義に見なされていたりを修正).
変数名の判定を修正(hoge::piyoで死んでた).
【その他っぽいの】
べき乗の演算 ** をナイーブな方法から繰り返し二乗法に変更.
べき乗の演算に関して,a = a ** b を a **= b; と書けるようにした. - 20190609-1:
【機能追加っぽいの】
最長増加部分列の長さを求める LIS_length(), weaklyLIS_length() を追加.
【バグ修正っぽいの】
if[] において,カンマで区切る方法を変更(<や>を括弧的な扱いにしなくなった). - 20190608-1:
【機能追加っぽいの】
素数列挙 Prime() を追加.
素因数を求める関数に,FactorM() を追加.
最小費用流 minCostFlow (とりあえず版)を追加.
if[] を追加. - 20190601-1:
【機能追加っぽいの】
素因数,約数を求める Factor(), Divisor() を追加.
wgraphにおいて,森の(BFSなどで距離が求まる)場合に,始点から各ノードまでの距離を求める getDistForest() を追加.
二分探索をする bsearch_min, bsearch_max を追加. - 20190526-1:
【機能追加っぽいの】
rd(), wt() でファイルからの入出力を readerFile(), writerFile() で設定できるようにした.
set<T>, multiset<T> に対する popFirst(), getFirst(), popLast(), getLast() を追加.
if文やwhile文のカッコ内(条件式)で色々な関数(fib_mod, inversionなど)が使えなかったのを修正.
【バグ修正っぽいの】
末尾に空行などの空白文字がないコードを食わせると落ちることがあったのを応急処置.
multiset が型として認識されなかったのを修正.
typename vector<T> など typename 型名 が型と認識されなかったのを修正.
【その他っぽいの】
グローバル変数を定義するときに inplace_L が勝手につくようにした(inplace_Lを指定しなくても書いた場所で変数が定義される).
入出力(rd(), wt())の関数を微妙に高速化(inlineをつけた). - 20180730-1:
【機能追加っぽいの】
擬似乱数生成に関する Rand 構造体を暫定追加.
枝に重みのあるグラフを扱う wgraph 構造体を暫定追加.
unionFind 構造体を追加.
【バグ修正っぽいの】
wtFなど引数の文字列の中で \" が登場するとバグってたのを修正 (wtF("<font size=\"{sz}\">\n")でバグってた) .
operator() を定義するとバグるのを修正. - 20180208-1:
【機能追加っぽいの】
バイナリヒープ(固定長配列用)LHeap<T> とバイナリヒープ(ダイクストラ用)DijkstraHeap<T> を追加(このドキュメントに説明が書いてありましたが追加してなかったです).
整数用の基数ソート sortF() を追加.
時間計測用 Timer を追加.
高速ゼータ変換 ZetaTransform(),高速メビウス変換 MoebiusTransform() を追加.
【バグ修正っぽいの】
追加された演算子などの直前の項がどこまで続くかの判定を改良(今まで max(A(N)) /+ min(A(N)) などがうまく動かなかった).
1d3で1000に置き換えなどが,文字列""の中で暴発するのを修正,および,2dが2d0とみなされていたのを修正. - 20180108-2:
【バグ修正っぽいの】
version 20180108-1のバグフィックスがしきれてなかったので再修正. - 20180108-1:
【バグ修正っぽいの】
ドット列によるループ展開が含まれる項を,演算子で繋げるとバグってたのを修正(三項演算子の応急処置の,を;に置き換えないようにしたことでバグってた). - 20180107-1:
【機能追加っぽいの】
FenwickTree(fenwick<T>)を追加.
配列の転倒数の計算(inversion_range(), inversion())を追加.
【バグ修正っぽいの】
doとelseの処理が逆になっていたのを修正(do{if(){}}while();とかif(){} else if(){} else if(){} else;でバグってたはず).
三項演算子の途中で,演算子が含まれる場合,;に置き換えられてバグってたのを応急処置(i = 1?3,4:5でバグってた). - 20170629-2:
【バグ修正っぽいの】
数値の後の * を省略する機能が "" や '' で囲まれた文字列の中で暴発してたのを修正. - 20170629-1:
【バグ修正っぽいの】
数値の後の * を省略する際,数値が小数点 . で終わってるとバグってたのを修正. - 20170628-1:
【機能追加っぽいの】
segtree に walloc() 追加(ワーキングメモリを使ってメモリを確保する).
graph追加(構造体を使うもの,構造体を使わないものもそのうち作りたい).
maxflow 追加.
Heavy Light Decomposition [HLD,HLD_segtree] 追加.
座標圧縮 [coordcomp(), coord_comp()] 追加.
フィボナッチ数を求める関数 [fib_mod(), fibonacci_mod()] を追加.
2*xを2xと,2*(x+y)を2(x+y)と書くなど,一部で数値と変数の間,数値と(の間*を省略できるようにした(ただし2d3は2000であって2*d3にはならない,12uはunsignedの定数12であって12*uではない).
不等式において if(2 < x < 6) hoge; のように && で繋げなくても書けるようにした(三項演算子を使いまくったりするとバグるかも).
malloc1d(), malloc2d() はワーキングメモリを使わないように変更.free1d(),free2d()を追加.ワーキングメモリを使うものは walloc1d(), walloc2d() にした.
関数や構造体を挿入しなくなるフラグを追加.
【バグ修正っぽいの】
static int hoge; など修飾子がついていると正常に型を取得できなかったのを修正.
if文の中などで,min(), gcd() など(の中で配列表記 min(a(n)) など)を使うとバグってたのを修正.
structの中身が変数宣言のみだった場合にバグってたのを修正.
構造体のメンバ変数の型を取得できるようにした(けど手抜きなのでtemplate未対応,あと変なコード食わすとたぶんバグる).
segtree<T> の getMinInd() の戻り値が int 型ではなく T 型になっていたのを修正.
配列の要素数などにシフト演算子 << などを使うと,括弧の対応関係が取れなくて死んでたのを修正. - 20170505-3:
【バグ修正っぽいの】
min(), max() のせいで numeric_limits<T>::min() などが動かなくなってたので,引数が空の min(), max() は置換しないようにした. - 20170505-2:
【機能追加っぽいの】
combination_mint を追加. - 20170505-1:
【機能追加っぽいの】
gcd(), lcm() において,rd(), wt() などと同じような記法を使えるように(a = lcm(b,c(n)); など).
上のgcd(), lcm() と同様の仕様で min(), max(), sum(), mul() を追加(大文字バージョンも).
各関数や機能を無効化するフラグを幾つか追加(gcd(), lcm(), min(), max(), sum(), mul(),それらの大文字バージョン).
inplace_L 修飾子を追加.
malloc1d(), malloc2d() 追加.
sortA() 追加.
【バグ修正っぽいの】
[>?=, <?=] 演算子で値を返すようにした(a = b >?= c; で b = max(b,c); a = b; と同値になります.a = (b >?= c) + 10; とかもOK).
ifの中や変数宣言の初期化の一部でmin[]()などを使うことができるようにした(グローバル変数の初期化,デフォルト引数とかは無理).
gcd(), lcm()においてGCD, LCMが使えなかったのを修正
int **hoge; のように 型 ** 変数 がべき乗演算子 [**] と解釈されるバグを修正.
rd, wtの処理を遅らせた(中身に min[](), gcd() などが使われている場合も動くことがあるようになった) - 20170430-2:
【機能追加っぽいの】
repループにおいて,そのスコープで未定義の変数でループしようとした場合,勝手にint型で定義されるようにした(rep(i,10)でiが定義されてないと勝手にint i;を定義する).
gcd(),lcm() を追加.
runLength() を追加.
【バグ修正っぽいの】
rd, wtの中で .. ループ展開を使えるように修正(..ループ展開の処理を最初に行うようにした).
変数宣言時に(とif文の中で) int i = 2**3, k = gcd(12,60,88); などcLay独自の演算子や関数などを一部使えるようにした(ループが絡んだり色々するのはまだ無理,そのうち…).
.1415 のように小数点から始まる数がdouble型と判定されなかったのを修正. - 20170430-1:
【機能追加っぽいの】
rdにて文字列を入力する時,@で文字列の長さもついでに取得できるようにした.
【バグ修正っぽいの】
rdにて型の推定を間違えるのを多少マシにした.
rd, wtにて変数名に _ が入っていると上手く行かなかったの修正. - 20170429-1:
【機能追加っぽいの】
staticに対応.
10進整数表記 [1d3 を 1000 に置換] を追加.
wtN, wtF を追加.
べき乗演算子 [**],切り上げ整数除算演算子 [/+] を暫定追加(暫定というのは書き方によってはバグることがあるはず).
定数 [MD=1000000007, PI=3.14159265358979323846] を追加.
rd, wtにおいて,double型の入出力に対応(ただしscanf,printfに化けるだけ).
min[](), max[](), argmin[](), argmax[](), argminL[](), argmaxL[]() を追加.ただし,argxxxは現状変数が1種類のみに対応.
switch-case構文 および label (goto文) に対応.
mint型を追加(構造体を使用しているので書き方によってはバグる).
segtree型を追加(セグメントツリーです.構造体を使用しているので…以下略).
【バグ修正っぽいの】
一部で変数名に _ があると正しく認識されなかったバグを修正.
変数宣言時,int a = (3+4); のように () があると関数だとみなされていたのを修正.
inline関数(ただしtemplateを使ってないもの)を定義するとバグってたのを修正.
文字列中(""の中)にループ展開 [..] や演算子 [>?=, <?=] などを表す部分文字列が出てきても置き換えないように修正.
templateで定義した型を返す関数を作るとバグってたのを修正.
long double 型を認識してなかった(忘れてた)のを修正.
wt において,文字列中の括弧の処理がバグってたのを修正(wt("[",i,"]");が[]で挟まれてるため"["とiと"]"に区切られなかった)
rd, wtにおいて配列の全要素を入出力するa(N)表記において,aが変数のときのみ適用するようにした.(wt(log(5));などでバグってた…,が結局まだlog関数の返り値の型を調べてないので結局バグるはず…なのでまだしばらくこのような書き方はできない.現状は引数がintだからlog(5)はint型だろうと推測して間違える)
ドットループの..と...の順番を変更(仕様の変更,今までのバージョンもこの仕様で実装されてました…) - 20170408-3:
A[a..b] = B[c..d] 等,2つ以上同時にループ展開する時,aとcのように始点が異なる時バグってたのを修正.
pair<hoge,hoge> 等,型名に%lt;>で囲まれた,が含まれているとバグるのを修正. - 20170408-2:
n進数(2~62進数)での出力に対応. - 20170408-1:
コメント(//,/**/)に対応(削除されます).
型 [ll, ull] にちゃんと対応したつもり.ついでに,int_inf などの定数を部分文字列に含んでいても大丈夫にした(変数 int_infinity などを定義可能).
構造体に暫定対応(今はグローバル変数で構造体の変数を定義するとやばい,前方宣言も駄目,他にも不都合ありそう).
フラグ [//no-unlocked] を追加
rd において ll型,double型の入力に対応.
wt シリーズにおいて ll型,double型,char型の配列(文字列)の出力に対応.
if() {} else if() {} else {} と続くとバグってたのを修正.
出力コードの下にオリジナルのコードをコメントアウト状態で表示するようにした. - 20170330-1:
wtで変数だけじゃなく式もを出力できるように.
rd,wtで (A,B)(N) など配列を括弧で囲む形に対応. - 20170326-2:
バグりまくってたのを修正(char配列の読み込み,演算子[<?=, >?=]が動かなかった). - 20170326-1:
char配列の読み込み追加.
定数[int_inf, ll_inf, double_inf]追加.
ドット列によるループ展開追加.型[ll, ull]の展開暫定追加.
演算子[<?=, >?=]追加. - 20170324-1:
取り敢えず作ってみた.
これ以前の更新履歴はこちら.
Current time: 2024年04月18日15時44分51秒
Last modified: 2021年06月07日18時11分38秒 (by laycrs)
Tags: no_tags
トップページに戻る
Logged in as: unknown user (not login)