2019年08月10日16時38分38秒に更新されたバージョンを表示しています.
最新のページはこちらをご覧ください.
cLay - 過去の更新履歴
過去の更新履歴
- 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月25日17時02分25秒
Last modified: 2019年08月10日16時38分38秒 (by laycrs)
Tags: no_tags
トップページに戻る
Logged in as: unknown user (not login)