ABC066
テンプレは省略
A
sortして先頭2つを取っておわり.
#include <bits/stdc++.h> using namespace std; signed main() { int a[3]; rep(i, 3) cin >> a[i]; sort(all(a)); print(a[0] + a[1]); }
B
与えられた文字列が偶数の長さで,半分に割ったときに左右で一致していれば偶文字列と分かるのでsubstr
で分割してあげる.
#include <bits/stdc++.h> using namespace std; signed main() { string s; cin >> s; int res = 0; while (true) { string a, b; s.erase(s.begin() + s.size() - 1); res++; if (s.size() % 2 != 0) continue; a = s.substr(0, s.size() / 2); b = s.substr(s.size() / 2, s.size()); if (a == b) { break; } } print(s.size()); }
C
反転して末尾にpush
していくのは,先頭と末尾へ交互にpushしていくことと変わらないのはすぐに分かる.
先頭・末尾へのpush
,アクセスが高速なデータ構造といえばdeque
であるから,この子を丁寧に扱ってあげると答えに導いてくれる.
#include <bits/stdc++.h> using namespace std; signed main() { deque<int> q; int n = in(); rep(i, n) { int a = in(); if (i % 2 != 0) q.push_back(a); else q.push_front(a); } if (n % 2 != 0) { rep(i, n - 1) { cout << q[i] << " "; } print(q[q.size() - 1]); } else { rrep(i, q.size() - 1, 1) { cout << q[i] << " "; } print(q[0]); } }
D
逆元を用いたの実装が分からず,時間内に解けなかった.
個の数が必ず一つ以上使われている長さの数列から,長さの部分列の個数を出力する問題.
(組み合わせ)を使う.
そのままやってしまうと重複部分を数えてしまうので,重複分を引いてあげる.
(長さの部分列の個数)
が重複分(は被った2つの数字の数列上での距離)
逆元と親身に接することで答えがでる.
#include <bits/stdc++.h> using namespace std; lint fact[100010], ifact[100010]; lint pow(lint a, lint k) { if (k == 0) return 1; lint res = pow(a, k / 2); res = res * res % MOD; if (k & 1) res = res * a % MOD; return res; } lint inv(lint a) { return pow(a, MOD - 2); } lint C(lint n, lint r) { if (n < 0 || r < 0 || r > n) return 0; if (r > n / 2) r = n - r; return fact[n] * ifact[r] % MOD * ifact[n - r] % MOD; } signed main() { lint n = in(); int N = n + 1; fact[0] = ifact[0] = 1; rep(i, 1, 100010) { fact[i] = (fact[i - 1] * i) % MOD; ifact[i] = inv(fact[i]); } int d = -1; int used[100010]; fill(all(used), -1); rep(i, N) { int a; cin >> a; if (used[a] != -1) { d = i - used[a]; } used[a] = i; } rep(i, N) { print((C(N, i + 1) - C(N - d - 1, i) + MOD) % MOD); } }
1125 -> 1173(+48, Highest!!)
はやいところ水色になりたいです
Bash on Ubuntu on WindowsとWindowsでクリップボード共有っぽいことする
初投稿です.既出だったら許してください. Qiitaに投稿したやつをここにも残しときます
Windows10は2017年4月11日にCreators Updateが配信されました.
そこで新しく追加された機能の中に「Windowsアプリケーションとの相互運用」があります.
今回はこれを利用して,Bash on Ubuntu on Windows(以下BoW)とWindowsとのクリップボード共有まがいのことをしてみようと思います.
準備
Windows10側での準備
まずはWindows10でのCreators Updateを行ってください.
そのあとghuntley/pasteboardのreleasesから「pasteboard-v1.1.0.zip」をダウンロードしてください.この中の pbpaste.exe
を使います.
ダウンロードし,展開したフォルダpasteboard-v1.1.0
をpasteboard
にリネームした後,任意の場所に移動,コピーして環境変数にpasteboard-v1.1.0
までのパスを追加します.
ここでは C:\app\pasteboard
を環境変数に追加しました.
コマンドプロンプトでpbpaste
と打って動くか確認したら準備は終了です.
BoW側での準備
改行コードや文字コードの変換に必要なnkf
をインストールします.
sudo apt-get install nkf
でインストール出来ます.Linuxはコマンド一つでインストール出来てとても楽ですね.
nkf --help
と打ってヘルプが表示されたら準備は終了です.
作業
さぁ,実際に使うための作業をしましょう.
BoWを起動し,vim ~/.bashrc
などで.bashrc
を開きます.
ここに以下のコードを追加してください.
alias wcopy='clip.exe' alias wpaste='pbpaste.exe'
保存して,source ~/.bashrc
するかBoWを再起動してください.
使ってみる
windowsで適当なテキストファイルを作りましょう.ここではデスクトップにhoge.txt
を作ってみます.
ばっしゅおんうぶんつおんうぃんどうず ぽよよ
BoWで/mnt/c/Users/{Windowsのユーザ名}/Desktop
に移動します.
cat hoge.txt | wcopy
と入力するとコピーが出来ます.
その後pbpaste
と打つとターミナルにコピーした内容が表示されますが,文字化けしていると思います.そこで間にnkf
をはさみ,文字コードを変換してからコピーするようにします.
nkf -w hoge.txt | wcopy
(ちなみに,ここで改行コードをLFに変換してもclip.exe
の仕様のせいかCRLFになってしまうっぽいのでwpaste
したあとに改行コードを変換する必要があります)
wpaste
で確認すると文字化けが解消されているかと思います.
また wpaste > out.txt
とすることで wpaste
の内容をout.txt
に保存することが出来ます.
使い方まとめ
cat ファイル名 | wcopy
でコピー- 文字コード問題は
nkf -w ファイル名 | wcopy
で解決
- 文字コード問題は
wpaste
でコピーした内容が見れるwpaste > ファイル名
でファイルに出力できる
以上でクリップボード共有まがいを実現する計画は完了です.
もし何かあったら,コメントかTwitterでリプしてくださると助かります.
2016年リリースデレマス曲個人的ランキング
この記事はProlab Advent Calendar 2016の"23"[::-1]日目の記事です.
だれ?
kurokoji(@kuro_koji_)です.
沖縄高専のメディア情報工学科2年の人間です.
久留米高専生ではないです.
情報オリンピック本選に出ます.宜しくお願いします.
最近ではデレステのコミュ第39話 「The Words for LOVE」 にて,千枝が向井拓海,藤本里奈,大和亜季らを一喝するシーン
を見て
となっていました.
2016年リリースデレマス曲個人的ランキング
3位: Love∞Destiny
Love∞Destiny(佐久間まゆ,北条加蓮,小日向美穂,多田李衣菜,緒方智絵里)
第3位はデレステイベント LIVE Groove Dance burst(2016年6月30日から7月7日まで開催) にて登場した「Love∞Destiny」です.
「出逢った瞬間に ココロは決まっていたの 未来永劫 添い遂げるって」
好きな人に対する深い愛がストレートに伝わってくる曲であります. また,ぼくはこの曲のダンスが好きで,特に
と
の部分がめっちゃ好きです.
2位: 咲いてJewel
咲いてJewel(鷺沢文香,速水奏,橘ありす,塩見周子,二宮飛鳥)
第2位にランクインしたのはTHE IDOLM@STER CINDERELLA MASTER Cool jewelries! 003 に収録されている,「咲いてJewel」です.
前奏とかのテレテレテレテレ↑テレテレテレテレ↓テン↑テテテン↓(楽曲試聴で11秒あたりとか)がすごい好きです.
曲中の
「誰も知らない調べが」
の部分はありす (橘ですっ!!) が歌っているのですが,これがね,最高なんですよ.
1位: ハイファイ☆デイズ
ハイファイ☆デイズ(佐々木千枝,櫻井桃華,市原仁奈,龍崎薫,赤城みりあ)
堂々の1位にランクインしたのはLIVE Groove Dance burst(2016年3月31日から4月7日まで開催) にて登場した「ハイファイ☆デイズ」です.担当の千枝がいるよ!!
「昨日の涙は今日の勇気」
流した涙は決して無駄ではない,未来への糧となるんだというのが伝わってきます. 落ち込んでいるときに是非聴きたいパッションな曲です.
番外編 ~カバー曲~
jewelriesシリーズには,選出メンバーそれぞれがカバーした曲も収録されています.その中で好きなものを上げたいと思います.
きみにとどけ
THE IDOLM@STER CINDERELLA MASTER Cool jewelries! 003 に収録されている,橘ありすが歌う「きみにとどけ」.
「きみにとどけ」は2009年10月6日から放送されたTVアニメ「君に届け」の主題歌です.
一番最初に聴いたとき,ありす(佐藤亜美菜さん)のウィスパーボイスと歌詞・メロディがマッチしており耳がとろけるかと思いました. 大音量&(イヤホン|ヘッドホン) で聴くことを強くオススメします.
佐藤亜美菜さんは天才だと思います.
リクエストしたミノPさんは天才だと思います.
みんなCD買おう
どうでしょうか.言葉は少々足りないと思いますが,多少は興味を持ってもらえたのではないでしょうか.
これは裏話なんですが,ぼくが初めてCDを買ったのがこのデレマス関係でして(このときはTulipとPaJe002を買った)自分でも驚きです.お金を掛けられるほど好きなものが出来たのも初めてです.デレマス,いや,アイマスはこれからの僕の人生に大きい影響を与えそうです.
デレマス全然しらないぞ,デレマス分かるけどデレステ程度でしか曲聴かんぞ,という方もこの機会に是非ともCDをご購入いただき,この世界にどっぷりと浸かって頂きたいです.
jewelriesシリーズはボイスドラマも入ってるし最高だよ!!最高!!
明日はふなちさんです.