2021-01-01から1年間の記事一覧

最近作ったライブラリの話

本記事は Aizu Advent Calendar 2021 の 9 日目の記事になります adventar.org はじめに えー、当日になっても書くネタが決まってなかったので最近作った競技プログラミング用のライブラリを紹介していきたいと思います とりあえず直近のものからいくつか選…

オーバーロードされたメンバ関数の有無による条件分岐

メンバ関数の有無による条件分岐をしようと思って調べました。 それ自体はできたのですが、メンバ関数がオーバーロードされていると上手くいかなかったのでそれの解決策と実装例を載せたいと思います。 とりあえず、目標としてはイテレータを返り値とする fi…

オイラーのファイ関数とその別種について

まえがき ACPC 2021 day2 E で出たオイラーのファイ関数に似た何かについてまとめました。 既出ではない...?(知らないだけかも) 本題 オイラーのファイ関数は 1 から N までの自然数について N と互いに素なものの個数を求めるものです。 ここに X を追加…

動的なimos法について

まえがき atcoder.jp ABC221 - D によって苦しめられたので imos 法を勉強しました。 値域の大きな imos 法についての名称が定まっていなかったのでとりあえず、動的 imos 法と名付けます。(動的セグメント木っぽさがあったように感じたので) imos 法とは …

assert するときのメモ

c++ で assert をする際についでにメッセージを表示したいみたいなとき assert(("x == 0", x != 0));

NITIC CTF2 参加記

NITIC CTF2に参加しました 36時間コンテストで9/5 12:00 - 9/6 24:00 (UTC+9)の間に開催されました #nitic_ctf_2 本日昼の12時から開催です!プログラミング未経験の中学生でも解ける問題から、CTF上級者でも難しいと思われる問題まで用意しております〜。参…

水になった、色変記事

入水しました!!!(激遅) 当時高校2年生の2019/2/3に始めてから水色になることができました。 茶色の期間が長く、伸び悩んでいた時期もありましたがなんとか水色に到達して感無量です。 なぜか、茶から緑になるまでよりも緑から水色になるまでの方が早か…

快適なrangeマクロ

僕は普段c++を使って競技プログラミングをしているのですが、その中でrepマクロを使う機会が多くあります。ふと、pythonのrangeのように引数によってその効果が変わるようなrepマクロに近い何かが欲しいなと思ったので記事を参考に作ってみました #define GE…

128ビット整数をいい感じに使えるライブラリを作ってみた(C++)

作ってみたとは書いたものの、肝心の入出力の部分はこちらの記事のコードをがっつりコピペをさせていただきました。 kenkoooo.hatenablog.com この場で感謝します。感謝。 さて、では何を作ったのかというと、入出力に加えて四則演算と剰余を行えるようにし…

vectorと単項の演算を作ってみた

0-indexedのものを1-indexedにして出力したいなぁってなったときにわざわざループを回して+1したりvalarrayにおきかえたりするのはひと手間がかかると感じたので演算子を作った operator+= template <typename T> void operator+=(vector<T> &vs, T x){ for(T &v:vs) v += x</t></typename>…

デバッグ用の可変長引数関数を作ってみた(C++)

目標の形 int main(){ int abc=10; int hoge=5; string str="aiueo"; debug(abc,hoge,str); } // 出力結果 abc:10 hoge:5 str:aiueo debugはマクロでも関数でもなんでも良いから変数名とその値を空白区切りで出力してほしかった(できれば標準エラー出力) …

goto文は使ってもいいんじゃないかと思い始めてきた話

atcoder.jp goto文は多重ループから抜け出す場合は使用することを推奨されている でもほんとにgoto文を使ってもいいのか?とおもって多重ループを抜け出すときの別の案を考えてみた 条件を満たしたらたくさんbreak int n=10; bool flg=false; for(int i=0;i

sshのknown_hostsが変わった

sshについて初期設定をしてから何も触ってないのでよくわからないまま動かなくなっていた。 原因 ssh先のなんかが変わったらしい。 ISTC->遠隔利用の説明->一番下のkeygenのとこをknown_hostsに入れる?

string::nposについて(c++)

知らずに使ってた string::nposはstring型のfindで見つからなかったときに返ってくる値です。 int main(){ string s = "aaa"; if(s.find('b') == string::npos) cout << "Not found" << endl; } Not found この前、int型にstring::nposを入れたら-1だったの…

using namespace std;を使わずに指定したものだけstd::を外す(c++)

using namespace std;はよろしくないから使いたくないけど、std::coutとかって書くのが嫌だなってとき #include <bits/stdc++.h> using std::cin; using std::cout; using std::endl; int main(){ int n; cin >> n; cout << n << endl; } これでよし</bits/stdc++.h>

libraryホームページ作成で詰まったこと

方針が違う 人力dfsみたいなことをした vue.jsのmarked、vue-routerを使おう ↓できないので訂正 nuxt.jsのmarkdown-itを使おう ↓できないので訂正 nuxt.jsの@nuxt/contentを使おう 何ができるか知らないからとりあえず探索していくしかない気がする。nuxt.js…

C++のmapで後ろからループを回すとき

map<int,int> mp; for(auto it = mp.begin(); it != mp.end(); it++){ // hoge } map<int,int> mp; for(auto val : mp){ // hoge } 前からのループは書けるが後ろからのループはどうやって書いたらいいのか分からなかったのですが、ちょうどいいのを見つけました。 https://cpp</int,int></int,int>…

累積和の変数名の候補

累積和を書くときに変数名を何にするかで迷いがち 候補1「r」 ruisekiの頭文字です 良い点 一文字で書きやすい 悪い点 基本的に英語から取っている変数名の中でこれだけローマ字なのが納得いかない rightのrと被る 候補2「rui」 ruisekiの頭3文字です 良い点…

VScodeで変数に色がつかないとき

コンパイルはできるし、おかしいところもないのに変数に色がつかないときがたまにあります。 そういうときは Windowsの人はCtrl+Shift+P Macの人はCommand+P でコマンドパレットを開いて、Reloadをしましょう。そうすれば変数に色がつくと思います。 原因は…

vectorのresizeとassignの違い

c++のvectorではresizeとassignという機能があります。 僕は今までresizeではサイズの指定だけ、assignはサイズと中身、とイメージしていたんですがresizeでも要素を指定できることを知ったので忘れないために違いを書いておこうと思います。 注意※簡単のた…

互除法

ユークリッドの互除法 ユークリッドの互除法の計算量 gcd(a,b)としたときに より簡単にN=max(a,b)とすると、です。 int gcd(int a, int b){ if( b == 0 ) return a; return gcd(b, a%b); } なぜlogが出てくるのか 例えば、計算量にlogが出てくるものといえば…

レポートで気をつけること

色んな警察がいる 色んな警察が息をひそめているので、ひっかからないようにします。個人的にこれで大丈夫だろうと思って書いているものなので本当に正しいかどうかはわかりません。 「~たり、~たり」警察 よくありがちなやつです。 休日にはお菓子を食べ…

学校のパソコンを使わずに学校の印刷機で印刷する豆知識。

備忘録。 印刷するために学校のパソコンにログインして学校のパソコンに書類を送って...みたいなことがだるい。 http://std1pr1.u-aizu.ac.jp にアクセスすれば、pdf限定だけど自分のパソコンもしくは携帯から印刷することができる。std2pr2とかにすると演習…

学校のパソコンにVNCを使ってファイルを送る

学校のパソコンにVNCを使ってファイルを送る ※注VNCを使えること前提で話を進めます。 sendanywhere ↑こちらのサイトでファイルを送ることができます。サイズが大きすぎるフォルダとかはzipで圧縮して送りましょう。

WSL&VScodeでデバッガを使った話(C++)

WSL&VScodeでデバッガを使いました。 目次 結果 gdbをインストールしよう! VScodeで遊んでみよう! 追記 STLもうまく表示できるようになりました。 あとがき 結果 結果から言うと、不具合が出てしまいました。STL系のvectorなどを使うとその変数の中身が見…

Markdownモードテスト

見出し1 見出し2 見出し1 #include <iostream> using namespace std; /* #define long long int */ aiueo aiueo dannraku aiueo list1 list2 list 2.5 aiueo1 脚注↩</iostream>