日々精進

aikoと旅行とプログラミング

【AOJ 1285】Grey Area

問題 Grey Area | Aizu Online Judge 方針 ヒストグラムを印刷するために必要なインク量を求めようという問題. vを入力する際に, 区画の最大値(imax), 頻度の最大値(hmax)を求める. hist[i] := の頻度としたとき, を計算する. 最後に0.01を足す(線とかを引く…

AtCoder Beginner Contest #59

問題A:Three-letter acronym 3つ文字列が与えられるので, それぞれの1文字目を大文字にしてつなげ表示する. 文字コードでやった. #include <iostream> #include <cstring> using namespace std; int main(){ string s1, s2, s3; cin >> s1 >> s2 >> s3; cout << (char)('A'+s1[</cstring></iostream>…

【AOJ 1257】And Then There Was One

問題 And Then There Was One | Aizu Online Judge 方針 Josephus problemという有名な問題らしい. (ただし, ) という漸化式を解くことでで求まる. コード #include <iostream> using namespace std; int f(int n, int k){ if(n == 1) return 0; return (f(n-1, k)+k)%</iostream>…

【AOJ 2242】Era Name

問題 Era Name | Aizu Online Judge 方針 EraBasedYearとWesternYearが入力し, それらをs(start), e(end)という変数に代入. queryが ]にはいってるとき, が答え. 当てはまらない時はUnknownとなる. コード #include <iostream> #include <vector> #include <algorithm> using namespace st</algorithm></vector></iostream>…

【ALDS1_10】B: Dynamic Programming - Matrix Chain Multiplication

問題 連鎖行列積 | アルゴリズムとデータ構造 | Aizu Online Judge 方針 行列が5個与えられた時, 計算の順序は 1. 2. 3. など様々な順序がある. すべてのパターンを試すアルゴリズムでは, となってしまうため, これよりも計算効率の良いアルゴリズムを考える…

【AOJ 1610】Bamboo Blossoms

問題 Bamboo Blossoms | Aizu Online Judge 方針 エラトステネスの篩的に消していく. Nが0になったときのiが答え. コード #include <iostream> #include <cmath> using namespace std; #define MAX 7368791 int main(){ int m, n; bool flag[MAX]; while(cin >> m >> n, m||n)</cmath></iostream>…

【AOJ 2700】Airport Codes

問題 Airport Codes | Aizu Online Judge 方針 1文字目と母音の直後の文字を順に連結した文字列を作る. k文字未満ならその文字列, k文字以上なら取り出した文字列の先頭からk文字分をコードとする. kを1から50まですべて試す(試しても間に合う制約なので) コ…

【AOJ 2706】Let's Solve Geometric Problems

問題 Let's Solve Geometric Problems | Aizu Online Judge 方針 b進数k桁の値は以下のように表すことができる. 上の式を変換すると,となることがわかる. 上記の式の形に変換したときのbが答え. コード #include <iostream> #include <cmath> #include <utility> #include <vector> #include <algorithm> u</algorithm></vector></utility></cmath></iostream>…

【AOJ ALDS1_7】B: Tree - Binary Trees

問題 Binary Trees | Aizu Online Judge 方針 二分木を作ろう. コード #include <iostream> using namespace std; struct Node{ int parent, left, right; }; int n; Node T[30]; int D[30], H[30]; void depth(int u, int d){ if(u == -1) return; D[u] = d; depth(T[</iostream>…

【AOJ 2331】A Way to Invite Friends

問題 A Way to Invite Friends | Aizu Online Judge 方針1 配列の[a, b]を++していく. 配列fをf[i]:=i人誘う時行くことができる友達の数とする. i-1(自分を抜いた数)誘うときに, i - 1 <= f[i]となればi-1人誘えるということになる. 方針2 aのときにf[a]を…

【AOJ 1193】Chain Disappearance Puzzle

問題 連鎖消滅パズル | Aizu Online Judge 方針 横に3つ以上連鎖している箇所は消すことができる. 消えた部分には, 上にある石が空きを埋めるように落ちてくる. すべての石を落とした後に消滅の条件をみたすようなものがあればまた繰り返す. 上の通りにシミ…

【AOJ ALDS1_5】D: Recursion / Divide and Conquer - The Number of Inversions

問題 反転数 | アルゴリズムとデータ構造 | Aizu Online Judge 方針 反転数を求める問題. バブルソートの要領で探すとになってTLEするので効率よく探す必要がある. タイトルの通り, 分割統治法(マージソート)を活用することででカウントすることができる. …

【AOJ 2253】Brave Force Story

問題 Brave Force Story | Aizu Online Judge 方針 BFSをする. その際にそこにたどり着ける距離を保存し, 最後にたどり着けたマスの数を数える. 普通に探索するとインデックスが負になって悲しくなるので, 適当に座標をずらす. コード #include <algorithm> #include <iostream> #</iostream></algorithm>…

【AOJ ALDS1_5】B: Recursion/Divide and Conquer - Merge Sort

問題 Merge Sort | Aizu Online Judge 方針 マージソートをします. INFを適当においたせいで無事に死んだ コード #include <iostream> #include <cstdio> using namespace std; #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i = a ; i < (int)n ; i++) #define MAX</cstdio></iostream>…

【AOJ 2330】Earth Invasion Diary of Miyabi-sensei

問題 Earth Invasion Diary of Miyabi-sensei | Aizu Online Judge 方針 天秤に乗せるものをA, B, Cという3つに分け, AとBを天秤に載せたとき, 釣り合っているならばCにオリジナルが載っているし, どちらかに傾いたら傾いたグループにオリジナルが存在するこ…

【AOJ ALDS1_4】D: Allocation

問題 割り当て | アルゴリズムとデータ構造 | Aizu Online Judge 方針 積載量の最小値を求めたい. 0から順にを試し, そのPでk台のトラックを使いすべて積むことができたならそれが答えになる. しかし, 順番に調べていくとのアルゴリズムになって終わらなさそ…

【AOJ ALDS1_4】C: Dictionary

問題 探索 3 | アルゴリズムとデータ構造 | Aizu Online Judge 方針 mapを実装する問題 STLのmap使えば簡単にできるんだけども, 「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」を見つつ愚直に実装. ハッシュ関数は「ダブルハッシュをつ…

【AOJ 2198】Moonlight Farm

AOJ

問題 Moonlight Farm | Aizu Online Judge 方針 入力が色々あるので1度図に起こして考えてみると非常に簡単 収入効率の分母は, 分子はとなるのでこれをクラスにいれてソートをするだけ. 効率が同じ場合は名前を辞書順で表示する. ソース #include <iostream> #include <vector></vector></iostream>…

【AOJ 2014】Surrounding Area

AOJ

問題 Surrounding Area | Aizu Online Judge 方針 白い杭から探索した場合には黒い杭, 黒い杭から探索した場合は白い杭に当たるまでひたすら探索 黒だけで塗りつぶされた場所と白だけで塗りつぶされた場所を数える. コード #include <iostream> #include <utility> using namesp</utility></iostream>…

CLionでOpenCVを使えるようにした話

タイトルの通り, OpenCVをCLionで使えるように設定した. CLionというのはJetBrains社が作っているC/C++のIDE. IntelliJ IDEAやPyCharm, Ruby Mineと同じ会社である. www.jetbrains.com 設定環境 Windows7 Professional OpenCV 3.2.0 MinGW CMake 3.8.0-rc4 C…

【AOJ 2013】Osaki

AOJ

問題 Osaki | Aizu Online Judge 方針 与えられた時刻はすべて秒に変換する. pair<int, int>のfirstを時間, secondを出発するときは1, 到着したときは-1として保持 時刻順にソートする. 0~vec.size()まで調べ, 出発したときはカウンタを1, 到着したときは-1していきそ</int,>…

【AOJ 1148】Analyzing Login/Logout Records

AOJ

問題 Analyzing Login/Logout Records | Aizu Online Judge 方針 PCの番号nと生徒の番号mをキーとしたmapを使って計算する. ログには必ずログインとログアウトの記録が存在し, 時刻昇順で入力がされることからk番目をstart, k+1番目をend(ただしkは偶数)とし…

【AOJ 1154】Monday-Saturday Prime Factors

AOJ

問題 Monday-Saturday Prime Factors | Aizu Online Judge 方針 月曜土曜数 a が月曜土曜数 b の月曜土曜約数であるための必要十分条件は, a が b の普通の意味の約数であること. 「エラトステネスの篩」の要領で月曜土曜素数を生成して試す. 出力のフォーマ…

【AOJ 1166】Amazing Maze

AOJ

問題 Amazing Mazes | Aizu Online Judge 方針 入力フォーマットが特殊な問題. (ここを理解するのに時間を取られる) 与えられた入力からフィールドを生成して, それに対してBFSする. BFSはいいとしてフィールドの生成めちゃくちゃ手こずった. kyuridenamid…

【AOJ 2155】Infected Computer

AOJ

問題 Infected Computer | Aizu Online Judge 方針 与えられたデータをtで昇順ソートする. あとはdとsの値を見てフラグにチェックをいれていき, カウントする. コード #include <iostream> #include <algorithm> using namespace std; #define LOG_MAX 20000 #define N_MAX 20000 </algorithm></iostream>…

【AOJ 2780】Best Matched Pair

AOJ

問題 Best Matched Pair | Aizu Online Judge 方針 全通り試す コード #include <iostream> using namespace std; #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i = a ; i < (int)n ; i++) int n; int a[1001]; bool check(int num){ int prev = num % 10;</iostream>…

【AOJ 2699】Koto Municipal Subway

AOJ

問題 Koto Municipal Subway | Aizu Online Judge 方針 データセットの制約を見た上で全通り試すことにした. コード #include <iostream> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; signed main(){ int D, E; while(scanf("%d %d", &D, &E), D || E){ doubl</cstdio></cmath></algorithm></iostream>…

福井市の猫カフェ「福ねこ」に行ってきた

福井市にある猫カフェ「福ねこ」へ行ってきました. (久しぶりのブログへの投稿が技術ネタでもなければ旅行ネタでもない記事になってしまった…) fukuneko.wixsite.com 猫カフェに行ったことがないので, 今回が人生初の猫カフェということになりました. 今回お…

【AOJ DPL1_E】Edit Distance (Levenshtein Distance)

問題 Edit Distance (Levenshtein Distance) | Aizu Online Judge 概要 与えられた2つの文字列の編集距離を求める問題. 実装方針 動的計画法を用いることで解を求めることができる. 2つの文字列のそれぞれi番目, j番目の編集距離ED(i, j)をもとめるには, min…

Scala超初心者がScala関西サミット2016に行った話

Scala関西サミット2016に参加してきました.

はじめてのScala【コップ本第4章】

4.1 クラス、メソッド、フィールド クラスを class ChecksumAccumulator { //メソッドやフィールドを定義 } としたとき、 new ChecksumAccumulator とすることでインスタンス化することができる。クラス定義の中には、フィールドとメソッドを配置する。(こ…

aiko Live Tour Love Like Pop Vol.19 静岡公演2日目参加レポート

先日の福井公演に続いて静岡公演2日目(2016.8.21)も参加してきました。今回は写真全然とってないので短めです。 以下セトリ等のネタバレを含むので注意です。 開演前 静岡公演の開場は静岡市民文化会館でした。 静岡市民文化会館 静岡でやるのは2009年LLP Vo…

はじめてのScala【コップ本第3章】

【ステップ7】配列を型でパラメータ化する パラメータ化とは「生成するインスタンスの構造を設定すること」を指す。Scalaではnew演算子を用いることでインスタンス化することができ、次のように記述する。 val big = new java.math.BigInteger("12345") この…

はじめてのScala【コップ本第2章】

【ステップ1】Scalaインタプリタの使い方を学ぶ 今回はsbtをインストールし,そこからコンソールを使うことにした. $ set console [info] Set current project to **** (in build file:*******) [info] Starting scala interpreter... [info] Welcome to Scal…

aiko Live Tour Love Like Pop Vol.19 福井公演参加レポート

Love Like Pop Vol.19 福井公演の参加レポートです。

【AOJ 2639】Yamanote Line

問題 Yamanote Line | Aizu Online Judge ソースコード #include <bits/stdc++.h> using namespace std; signed main(){ int a, b, c; int i = 0, ans = 0; cin >> a >> b >> c; bool flag[61]={false}; while(true){ if(flag[i]){ cout << -1 << endl; break; } flag[i] = </bits/stdc++.h>…

【AOJ 1335】Equal Sum Sets

問題 Equal Sum Sets | Aizu Online Judge ソースコード #include <iostream> #include <cstring> using namespace std; int dp[160][100][160]; int n, k, s; int solve(int _n, int _k, int _s){ int res=0; if(dp[_n][_k][_s] >= 0) return dp[_n][_k][_s]; if(_k == k){ if(</cstring></iostream>…

京都鉄道博物館に行ってきました【プロムナード・トワイライトプラザ編】

先日オープンしたばかりの京都鉄道博物館へ行ってきました。 かつて梅小路公園内にあった交通科学博物館と梅小路蒸気機関車館が合体し、今年の4月にオープンしたばかりの施設です。 オープンしたての施設で休日に行ったこともあり券売機の前には行列が。案外…

【AOJ 1356】Decimal Sequences

問題 Decimal Sequences | Aizu Online Judge ソースコード #include <iostream> #include <string> using namespace std; #define rep(i,n) for(int i = 0 ; i < n ; i++) int main(){ int n; char c; string s; cin >> n; rep(i,n){ cin >> c; s += c; } rep(i,10000){ if(s.</string></iostream>…

【AOJ 1240】Unreliable Messages

問題 Unreliable Message | Aizu Online Judge ソースコード #include <iostream> #include <string> #include <algorithm> #include <cctype> using namespace std; #define rep(i,n) for(int i = 0 ; i < n ; i++) int main(){ int n; cin >> n; rep(i,n){ string messenger; string message; in</cctype></algorithm></string></iostream>…

【POJ 3863】Business Center

問題 3863 -- Business Center ソースコード #include <iostream> #include <cmath> #include <limits> #define rep(i,n) for(int i = 0 ; i < n ; i++) using namespace std; int n, m; int solve(int u, int d){ int left = 0, right = n+1; int ans = numeric_limits<int>::max(); int m</int></limits></cmath></iostream>…

【AOJ 1276】Prime Gap

問題 Prime Gap | Aizu Online Judge ソースコード #include <iostream> #include <cstring> #define rep(i,n) for(int i = 0 ; i < n ; i++) #define MAX_N 1299710 using namespace std; int main(){ int n; bool prime[MAX_N]; memset(prime,true,sizeof(prime)); for(int i </cstring></iostream>…

C++で指定した型の最大値最小値を取得する。

ある型の最大値・最小値を取得するメモ。 #include <limits> #include <iostream> using namespace std; int main(){ cout << "int" << '\n'; cout << "max:" << numeric_limits<int>::max() << '\n'; cout << "min:" << numeric_limits<int>::min() << '\n'; cout << '\n'; cout << "dou</int></int></iostream></limits>…

AtCoder Beginner Contest #37

問題A:饅頭 あなたはとにかく沢山の個数を食べたいので、種類は気にせず、なるべく多くの個数の饅頭を買おうと思っています。 2 種類で買う個数が違ったり、片方の種類しか買わなかったりしてもかまいません。 と書いてあるので、Cをmin(A,B)で割ることで求…

【AOJ 1187】ICPC Ranking

問題 ICPC Ranking | Aizu Online Judge ソースコード #include <algorithm> #include <iostream> #include <cstring> using namespace std; #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i = a ; i < n ; i++) #define T_MAX 50 struct SCORE{ int id; int ac; int penalty; b</cstring></iostream></algorithm>…

【AOJ 2424】Kakezan

問題 Kakezan | Aizu Online Judge ソースコード #include <iostream> #include <string> #define rep(i,n) for(int i = 0 ; i < n ; i++) #define REP(i,a,n) for(int i = a; i < n ; i++) using namespace std; int calc(string s){ int max_v = -1000000; int len = s.lengt</string></iostream>…

【AOJ 2150】Matsuzaki Number

問題 Matsuzaki Number | Aizu Online Judge ソースコード #include <iostream> #include <cstring> #include <vector> #include <algorithm> using namespace std; #define N 4000001 #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i=a ; i < n ; i++) #define pb push_back int main()</algorithm></vector></cstring></iostream>…

【AOJ 2400】You Are the Judge

問題 You Are the Judge | Aizu Online Judge ソースコード #include <iostream> #include <string> #include <cstring> #include <algorithm> using namespace std; #define rep(i,n) for(int i = 0 ; i < n ; i++) struct SCORE{ int id, ac, penalty; bool operator < (const SCORE& another) co</algorithm></cstring></string></iostream>…

【AOJ 2399】Save Your Privacy!

問題 Save Your Privacy! | Aizu Online Judge ソースコード #include <cstring> #include <iostream> using namespace std; #define rep(i,n) for(int i = 1 ; i <= n ; i++) int main(){ int n; bool data[101][101]; bool ans[101]; while(cin >> n, n){ memset(data, false,</iostream></cstring>…

【AOJ 2007】Make Purse Light

問題 Make Purse Light | Aizu Online Judge ソースコード #include <iostream> #include <algorithm> using namespace std; #define rep(i,n) for(int i = 0 ; i < n ; i++) int coin[4]; int min_coin[4]; int d[] = {10, 50, 100, 500}; int out[4]; int main(){ int m; bool f</algorithm></iostream>…