intさわだんのBlack History

刹那的レジェンドになりたい。

JOI予選関連

JOI2016予選

予選落ちました。今年から本選会場が東京から筑波に変わるらしくて行きたかったけど残念です(チーン)。おひさしぶりです。JOI予選に参加して死んできました。結果はたぶん4完です。問5,6は頭で解けましたが実装力不足で面倒くさくなってやめました。ジュケン…

第12回日本情報オリンピック 予選 問題5 魚の生息範囲 (Fish) AOJ0580

結構昔に「わかんねっ」っていって放置してた問題。座標圧縮 #include <bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ll ans; ll d[52][7]; ll sx[110],sy[110],sd[110]; int main(){ scanf("%d%d",&n,&m); for(int i = 0;i < n;i++){ for(int j = </bits/stdc++.h>…

2014 情報オリンピック 予選  参加記

あとから見れるようにソースはっとく。本番のソースそのままはるからとても見にくいと思われます。競技前、風邪がやばいな~~と思っていた。高校入試と同じように ももいろクローバーZの「行くぜっ!怪盗少女」を聞く。 この曲を聞くとなぜか緊張がおさまる…

計算量と実行時間的なアレで予選には二分探索とかセグメントツリー(データ構造)などは、出る可能性は極めて低いと思うんだけどどうなんだろう。去年から察するに、グラフ理論は出てもおかしくない。三問目あたりに貪欲法出そうな気がする。

第13回日本情報オリンピック 予選 問題5 タクシー (Taxis) AOJ0596

深さ優先探索+ダイクストラ幅優先探索使ったほうがいいことにACしたあと気がついた。 まあ通れば勝ちでしょ...(震え声 #include <bits/stdc++.h> using namespace std; const int INF = 1000000000; const int MAX_V = 5003; int cost[MAX_V][MAX_V]; int cosn[5003][5003</bits/stdc++.h>…

第9回日本情報オリンピック 予選 問題5 通勤経路

DPショートコーディング大会みたいになった。 #include <bits/stdc++.h> using namespace std; const int mod = 100000; int w,h,dp[102][102][4]; int main(){ cin >> w >> h; dp[1][1][0] = 1;dp[1][1][3] = 1; for(int i = 1;i <= h;i++){ for(int j = 1;j <= w;j++){ if</bits/stdc++.h>…

JOI 2015 予選 問題予想

予選で出る問題のアルゴリズムについて予想してみる。 アルゴリズム全部列挙すれば当たるってはっきり分かるけれども。 詳しい予選問題過去問の分析については予選終わってから書く。 問題3からは出そうな順で書いていきます。 問題1 変数と四則演算、値の入…

第11回 2012年 日本情報オリンピック 予選 過去問 ソースコード C++

6問目のジグザグ数は闇が生えたのでまだできてないです。 予選はiostream多用するってはっきりわかんだね。

第10回 2011年 日本情報オリンピック 予選 過去問 解答

6問目、解法はなんとか生えたけど実装してないので後で追加しておく。JOI予選、ショートコーディングゲーになってる感否めない。 なんで今更予選の問題といているかというと予選落ちしたくないからです。

AOJ0579 暑い日々

joi-yosen~DP~ #include <cstdio> #include <algorithm> using namespace std; int main(){ int d,n; int kion[203] = {0}; int huku[203][3] = {0}; int dp[203][203] = {0}; scanf("%d%d",&d,&n); for(int i = 0;i < d;i++){ scanf("%d",&kion[i]); } for(int i = 0;i < n;i++</algorithm></cstdio>…

AOJ0569 イルミネーション

致命的なミスをして一発ACできなかったから精進。解法:なし。 #include <cstdio> using namespace std; int dy[] = {-1,0,1,1,0,-1}; int dx0[] = {0,1,0,-1,-1,-1}; int dx1[] = {1,1,1,0,-1,0}; int w,h,ans = 0; int m[110][110] = {0}; void dfs(int y,int x){ </cstdio>…

AOJ0558 チーズ

これほど汚いソースを見たことがない。 戒めのためにはります。 #include <cstdio> #include <queue> #include <cstdlib> using namespace std; int h,w,n; int nx,ny; int dx[] = {0,1,0,-1}; int dy[] = {1,0,-1,0}; int ans = 0; char m[1003][1003]; void search(int ty,int tx,c</cstdlib></queue></cstdio>…

AOJ0568 パスタ

JOI予選問題解法:典型的なDP 問題しっかり読もうと思った #include <cstdio> using namespace std; int main(){ const int mod = 10000; int n,k; int yotei[102]={0}; int dp[102][4][2] = {0}; scanf("%d%d",&n,&k); for(int i = 0;i < k;i++){ int a,b; scanf("%d</cstdio>…

AOJ0578 看板

joi予選の問題。こういうのめっちゃ苦手だけど成長したのか瞬殺だった。 解法:線形探索 #include <cstdio> #include <cstring> using namespace std; int main(){ int n,ans=0; char name[27],s[102][102]; scanf("%d",&n); scanf("%s",&name); for(int i = 0;i < n;i++){ sca</cstring></cstdio>…

AOJ0567 最高のピザ

joi予選の問題。解法:ソートのみ一見難しそうに見えるが読んでみると解法が顕著で簡単な問題。(sortのgreater<int>()って#include <iostream>必要だったんですね。。。) #include <cstdio> #include <algorithm> #include <iostream> using namespace std; int main(){ int n,a,b,c,d[</iostream></algorithm></cstdio>…

AOJ0596&AOJ0258

とりあえず二問。AOJ0595非常に汚い #include <cstdio> using namespace std; int main(){ int n; char s[1003]; int dp[1003][8] = {0}; scanf("%d",&n); scanf("%s",&s); if(s[0] == 'J'){ dp[1][0] = 1; dp[1][3] = 1; dp[1][5] = 1; dp[1][6] = 1; }else if(s[0]</cstdio>…

AOJ 0536 JOI 予選過去問 シャッフル

進捗アリです。 めんどくさかった 予選でフィードバックないから死んじゃう 解法はjoi公式の奴と一緒です。はい。ちょっとおんなじことを繰り返している部分があるけど直すのめんどいんですいませぇん //こんな問題予選に出たら解きたくないわ~ #include <cstdio> #</cstdio>…

第7回日本情報オリンピック 予選3 カードゲーム

やるだけつらい #include <cstdio> using namespace std; int main(){ while(1){ int n; bool t[203],h[203]; scanf("%d",&n); if(n == 0) break; for(int i = 0;i <= n*2;i++){ t[i] = false; h[i] = false; } for(int i = 1;i <= n;i++){ int tmp; scanf("%d",&tmp</cstdio>…

第5回日本情報オリンピック 予選 問題3

ねむい。 #include <cstdio> #include <iostream> #include <cstring> using namespace std; int main(){ while(1){ int n; int ans = 1; int s[7] = {0,1,2,3,4,5,6}; scanf("%d",&n); if(n == 0) break; for(int i = 0;i < n;i++){ char sai[10]; cin >> sai; int t1=s[1],t2=s[2],t3=</cstring></iostream></cstdio>…