JOI

IOIへの出題について - 解説編

div.pg{display:none;}p{margin:0px;}.btn{vertical-align:text-top; margin:0px;margin-right:3px;}$(document).ready(function(){$(".pg").css("margin-left","15px");});function tgl(id,btn){$("#"+id).slideToggle("fast");s=btn.src;btn.src=(s.charAt…

IOIへの出題について

※この記事はCompetitive Programming (その2) Advent Calendar 2016 - Adventarの2日目の記事です。 IOIにあまり興味が無い方は、下の方の僕が出題した問題の方だけをお読み下さい。 IOIとは IOIへの問題の応募 IOIに問題が採用された時の流れ IOI 2016に…

JOI春合宿の解説

JOI

問題一覧 - 情報オリンピック 問題と解説 の解説をちょいちょい書いていこうと思っているので、 解説書いてほしい問題のリクエストあればお願いします。

情報オリンピック 春合宿 まとめ

JOI

少し長くなる気がするので、結論から言うと、 代表にはなれませんでした。 JOIerはとても大好きなので、今までどおりに仲良くしてね☆ むしろ、代表選考の殺伐とした雰囲気がなくなってさらに仲良くなることを期待しています。 そろそろ受験フェイズに移行し…

合宿終了

JOI

ショートコーディング大会楽しかった。 準急強すぎ・・・w 合宿の感想は後日書きます

JOI2012 春合宿 2日目

JOI

Output Onlyがあったりして、全体の点数がよく分からない。 wataさんの講義は怖かった。 蟻本にサインをもらいましたー 面倒なので、ブログあんまりかかんでええかー

JOI2012 春合宿 1日目

JOI

\おわた/ 10+40+100 = 150 というか、みんな絶望してた。 準急も290で絶望してた。 むずすぎわろ 今回の目標 ・準急の満点阻止 が早々にしてひとつ達成された。 OOOで準急の満点阻止に目標を変えよう。 1:building2 超難問。 O(N^2) から O(N log N) は…

JOI2012 春合宿 0日目

JOI

今日は自己紹介・プラクティス・hosさんの講義って感じです。 ・終業式に出席 ・体育館の床が新しくなっていて気分が良かった。 ・HR長くて少し焦ったが、余裕で新幹線間に合いそう。 ・囲碁部の副将に会う。 ・「頑張って」とか言われていい感じ ・尼崎駅で…

2009 Territory

JOI

みんなO(N log N)で解いているらしいですが工夫してひたすら実装してメモリ削るとBFSするだけで解けますとか言ってる人がいますが、O(N log N)で解きました。 基本的な方針は、軌跡を適当に処理し、左上の点から右手法を使うと図形の外側が得られます。 問題…

2008 Ruins

JOI

O(N^3)が想定だとずっと信じていたので必死に考える前に「幾何だ・・・」と思ってやめていましたが、どうやら他の人たちがみんなO(N^4)で解いていて時間的にもかなり余裕だという話を聞く前に、O(N^3)でときました。こっちは簡単。 解法としては、このコード…

iconroad 3

simroad input maker - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ simroadをtwitterからひろったiconを元にした入力データを作って遊んでみた。その2 スコアはO3Jで。 Respect2Dさんの鍵垢 roxion1377 the_nikaidoes stac_task tokoharu_saku…

iconroad 2

simroad input maker - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ simroadをtwitterからひろったiconを元にした入力データを作って遊んでみた。その2 スコアはO3Jで。 多いので折り畳みました。画像は「続きを読む」で。 iwiwi japlj kyuride…

iconroad 1

simroad input maker - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ simroadをtwitterからひろったiconを元にした入力データを作って遊んでみた。その1 スコアはO3Jで。 ABC順です。 catupper chokudai hogloid hos_lyric hziwara imos meg_73 …

simroad input maker

JOI

simroadの入力データを作ってくれるツールを作りました。 画像を与えると適当に作ってくれますが、適当なアルゴリズムなので画像によっては微妙になるかも。 twitterで拾ったアイコンたちで作ってみた。 semiexp製のO3Jにのせてもらったので、judgeも出来る…

simroad 2

JOI

simroadの入力データを適当に作った。 1: 73 2: 68 3: 255 4: 173 5: 643

JOI 春合宿 Day3-3 Simroad

JOI

simroad by snuke — Gist この前のんびりやったsimroadのスコアです。 1: 126 2: 37 3: 349 4: 883 5: 615id:qnighyさんが作ってくださったツールでビジュアライズしてみました。 Output only 楽しいからみんなやろう。

JOI 2012 本選

JOI

100+100+100+100+100 = 500 つまり満点でした。 昨日あたりからWA病を発病していたりしてたので素直に嬉しいです。 今年は満点三人とかいうアレで、いろいろやばい。 以下とりあえず参加記。 1日目 ・新大阪から新幹線に乗る ・きゅうりと同じ新幹線だった…

JOI予選2011

JOI

切り捨てで 0点。 さすがに不参加でしょこれ。 一応コード晒します。 1番:やるだけ。 #include<cstdio> #include<algorithm> #include<queue> #include<string> #define fi first #define se second using namespace std; typedef long long ll; typedef pair<int,int> P; const int INF = 100000000; </int,int></string></queue></algorithm></cstdio>…

JOI模擬予選的なもの

「JOI模擬予選的なもの」に参加して下さった皆さん、ありがとうございました! tester用に作った問題文です 忍者のセキュリティの仕様がhogeで画像が表示されなかったり、3番の問題文が途中で切れってしまったりと、大変でしたがなんとか無事終えることが出…

Prime smash!

夏期セミナーで流行ってたiPad用ゲーム iTunes App Store で見つかる iPad 対応 Panasonic Prime Smash! id:nikollsonさんとかがよく「素数切らせて」って言ってきましたw 超簡単に言うと、「合成数を切り、素数を取るゲーム」 なんでみんなあんなスコア出せ…

JOI夏期セミナー

コンピュータジオメトリを取って、ボロノイ図を生成するプログラム(90%の完成度)を作った。 で、いろいろうpる。 ↓是非デスクトップにして下さいw

JOI春合宿day4

JOI

1番が一番難しかった。(リアルで) 2番は発想が面白かった。BIT-DP? 3番はコーナーケース怖すぎた。 4番はなんとか解けた。 DPって万能だね! タイに行きタイ!

JOI春合宿day3

JOI

良い難問だった。 コーナーケースが特になかったのでありがたかった。 UFOは・・・うふぉうふぉうふぉ いや、なんでもない。 しかし、もっと点取れた気がする・・・ ちょっと悔しい。

改名@JOI春合宿

JOI

春合宿の会場が7階で、ホテルの部屋が7階なので、 合宿中は七階堂になります。

JOI 2007 春合宿 day1-1 「Score」

JOI

点数ごとに人数求めて適当に、やるだけ。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define drep(i,o) for(int i = o; i >= 0; i--) #define pb push_back using namespace std; int main(){ int n, a, b[101], c[101]; vec</algorithm></vector></cstdio>…

JOI 2011 春合宿 day2

JOI

なんだこれ。 正直上位層は合宿に参加しなくていいから、問題のレベル下げてくれ〜 1番は、対話型の推理ゲー。 やっぱり出たか。って感じ。 制約気にしてなくて最後の方不正解。 2番はコンビネーション(mod)の求め方分かんなかった。 あるいは使わないで…

JOI 2011 春合宿 day1

JOI

「合宿」ではない気がする・・・ 難易度高くてびっくりした。 joitter見事に引っかかった。 大阪会場人数少なすぎワロタ。 dragonはM理事長が邪魔という評判。 防火するより会場変えろよっていう。 メダリスト全員3完なんだろうなぁ・・・ 明日も頑張ります…

JOI 2009 春合宿 day4-1 「Distribution」

JOI

Committeeと同じ要領。 こっちはやる気が1以上と決まっているのでその点は楽。 2009ってday4よりday3の方がムズくね? Starry SkyはなんかBLっぽいから知らん。 #include<cstdio> #include<vector> #include<algorithm> #include<queue> #define rep(i,n) for(int i = 0; i < n; i++) #define r</queue></algorithm></vector></cstdio>…

JOI 2009 春合宿 day2-3 「Contest」

JOI

貪欲法でおk。 まず自分(問い合わせのあった国)が取りうる最大の得点Xを求め、 あとは適当に、Xを出来る限り超えないように当てはめていく。 #include<cstdio> #include<algorithm> #include<vector> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i </vector></algorithm></cstdio>…

JOI 2009 春合宿 day2-2 「advertisement」

JOI

強連結成分分解初めて書いた。(蟻本見ながらだけど) 分解して、どの人からも電話がかかってこない人数を数える。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i <= n; i++) #define pb pus</algorithm></vector></cstdio>…

JOI 2009 春合宿 day2-1 「abduction」

JOI

縦方向と横方向でそれぞれDPして、後で掛け合わせる。 結構ややこしい。 #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int mod = 10000000; int dp[2][1001]; int main(){ int w[2], n, o = 0, p = 1, q = 1; char a; scanf("%d%d%d</algorithm></cstdio>…

JOI 2009 春合宿 day1-2 「Stamp」

JOI

貪欲法でおk。 「削除」をするよりも、「挿入」もしくは、2文字増やして「入れ替える」方が良い。 端に注意。 #include<cstdio> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) using namespace std; int main(){ bool f = true; int n, len = 0, x = 0, y </algorithm></cstdio>…

JOI 2009 春合宿 day1-1 「Sequence」

JOI

奇数=true、偶数=falseで周期性を見つければ良い。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define pb push_back using namespace std; typedef long long ll; ll n, ki; vector<bool> s; ll cnt(ll x){ ll r = x/n*ki, l = x</bool></algorithm></vector></cstdio>…

JOI 2008 春合宿 day3-2 「Fraction」

JOI

ファレイ数列ですね。 エジプト→ファラオ→ファレイっていう発想だったりして・・・ #include<cstdio> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define fi first #define se second using namespace std; typedef pair<int, int> P; int m, k; P farey(P a, P b)</int,></algorithm></cstdio>…

JOI 2008 春合宿 day3-1 「Origami」

JOI

どうしてもよく分からなかったので、id:JAPLJさんのソースを見た。 予想以上に短くてびっくりした。 うーん座標圧縮いらないとは・・・ 勉強になりました〜。 #include<cstdio> #include<map> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define pb push_back</algorithm></map></cstdio>…

JOI 2010 春合宿 day4-4 「plugs」

JOI

うん、変わった問題ですね。 ざっくり説明すると、左上と右下に1、右上と左下に-1を書き、 縦と横に一回ずつ総和を取るといいらしい。(ざっくり過ぎか。) nが小さく限られているので、この方法が上手くいく。 #include<cstdio> #include<algorithm> #include<queue> #define rep(i,n)</queue></algorithm></cstdio>…

JOI 2008 春合宿 day2-2 「Cheeting」

JOI

二分探索にしか見えない。。 思った以上に簡単だった。 汚いソースですが。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define pb push_back using namespace std; int main(){ int n, m, a, b, ld = 0, rd = 1000000000, d,</algorithm></vector></cstdio>…

JOI 2008 春合宿 day2-1 「Nile.com」

JOI

一発で通ったから気持ちよかった。 まぁ、DP臭しかしませんね。 #include<cstdio> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) using namespace std; const int INF = 100000000; int dp[6000]; int main(){ int n, d, a, wm = INF, nm; scanf("%d%d",&n,</algorithm></cstdio>…

オリ合宿中止

JOI

JOI春合宿2011が中止となったようだ。 こんなのぜったいおかしいよ! とか言ってみたいところだけど、この状況では仕方がないよね。

JOI 2010 春合宿 day4-3 「lake」

JOI

円を切って伸ばして直線にする発想はすぐ思いついたけど、そこからなんか詰まった。 が、なんのこっちゃない単なるDPだったorz #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i < n; i++) #def</algorithm></vector></cstdio>…

JOI 2010 春合宿 day4-2 「Highway」

JOI

シンプルな問題だけどかなり難しい。 セグメント木ばっかり。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,o,n) for(int i = o; i < n; i++) #define drep(i,n) for(int i = n; i >= 0; i--) #define pb push_b</algorithm></vector></cstdio>…

JOI 2010 春合宿 day4-1 「Contest」

JOI

「面白い」としかいいようがないかな? #include<cstdio> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i <= n; i++) using namespace std; int d[1001][11][2], p[11], ans[1001]; int main(){ int n, m, t, x, y, a, b</algorithm></cstdio>…

JOI 2010 春合宿 day3-2 「Hide-and-Seek」

JOI

デバッグに時間がかかりまくった。 セグメント木の応用かな。 #include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define pb push_back using namespace std; struct wall{int y, a, b;}; struct seg{int k, a, b;}; struct rem{int </algorithm></vector></cstdio>…

JOI 2010 春合宿 day3-1 「Finals」

JOI

問題文を取り違えて悩んでた... プリムやらクラスカルやらで最小全域木を求めて、そこから料金の高い辺から順に引いていく。 #include<cstdio> #include<vector> #include<queue> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i <= n; i++) #defi</queue></vector></cstdio>…

JOI 2010 春合宿 day2-3「Regions」

JOI

2分探索。 調べるときは葉からしなければならない。 #include<cstdio> #include<vector> #include<queue> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,n) for(int i = 1; i <= n; i++) #define pb push_back #define fi first #define se second using namespace </queue></vector></cstdio>…

JOI 2010 春合宿 day2-2 「DNA synthesizer」

JOI

trieなるものを使えばいいらしい。 多分 O(20 * 150000) ぐらいかな〜 #include<cstdio> #include<vector> #include<algorithm> #include<string.h> #define rep(i,n) for(int i = 0; i < n; i++) #define rrep(i,o,n) for(int i = o; i <= n; i++) #define pb push_back using namespace std; int</string.h></algorithm></vector></cstdio>…

JOI 2010 春合宿 day2-1 「a+b problem」

JOI

面倒と言わざるを得ない・・・ stackでやりました。 #include<cstdio> #include<stack> #define rep(i,n) for(int i = 0; i < n; i++) #define fi first #define se second using namespace std; typedef long long ll; typedef pair<int, ll> P; stack<P> ans; void in(int a, ll l){ i</p></int,></stack></cstdio>…

JOI 2010 春合宿 day1-3 「Stairs」

JOI

累積和的なDP 結構シンプルにまとまって気持ちいい。 僕は、DP萌え ですね^^ #include<cstdio> #define rrep(i,n) for(int i = 1; i <= n; i++) using namespace std; const int mod = 1234567; int dp[500002], h[500001]; int main(){ int n, p, l = 0, sumh; scan</cstdio>…

JOI 2010 春合宿 day1-2 「Sengoku」

JOI

なかなかにめんどくさい。 #include<cstdio> #include <cstdlib> #include<queue> #include<set> #define rep(i,n) for(int i = 0; i < n; i++) using namespace std; typedef long long ll; int main(){ int l, n, inx, iny, z, c, j; ll ans = 0; set<int> sx, sy; set<int>::iterator it; priorit</int></int></set></queue></cstdlib></cstdio>…

JOI 2010 春合宿 day1-1 「JOI Poster」

JOI

ウォーミングアップ。 ただ、出力データのでかさがぱない。 #include<cstdio> #define rep(i,n) for(int i = 0; i < n; i++) using namespace std; int main(){ int n, k; scanf("%d%d",&n,&k); if (n == 0){printf("J\n"); return 0;}; for(int i = 1 << (n-1); i ></cstdio>…