intさわだんのBlack History

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

2019-03-01から1ヶ月間の記事一覧

ICPC 国内予選2008D ちょろちょろロボット AOJ 1156

基本的にやることはICPC 国内予選2007D 崖登り AOJ1150 - intさわだんのBlack Historyとおんなじ 幅優先探索でゴリ押す #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc</map></bits/stdc++.h>…

ICPC 国内予選2007D 崖登り AOJ1150

解法:幅優先探索。右足でたどり着いたときの最小時間と左足の時の最小時間を分けて考える。この手の問題は得意なので秒で通した。(実際は分で通した。tupleとqueueのコンボが最強であることを知った。(自分が現役だったころはtupleなかった気がする。最近…

ICPC 国内予選2006D カーリング 2.0 AOJ 1144

解法:深さ優先探索でゴリ押す 特に難しいところはない。計算量も気にしない。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using </map></bits/stdc++.h>…

ICPC 国内予選2003D Building a Space Station AOJ1127

解法:Union-Findでそれぞれのcell同士つながってるかをわかるようにし、つながってないcall間で必要なcorridorの長さの最小値を求めそのcorridorを採用する。という処理をすべてのcellがつながるまで繰り返す。小数の扱いが闇だった。printf使えば小数点以…

ICPC 国内予選2013C 階層民主主義 AOJ 1188

やるだけ。解法はICPC 国内予選2015C ICPC 計算機 AOJ1602 - intさわだんのBlack Historyと完全に同じ #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define </map></bits/stdc++.h>…

ICPC 国内予選2014C バンパイア AOJ 1194

初心者なので幾何の問題に慣れてなくて焦ったけどかなりすんなりできた。解説一応しますが説明がすこし面倒なのと解説が必要なほど難しい問題ではないと思うのでかなり簡潔にします 建物のx座標の値はありがたいことに整数なので(これが小数だと面倒)x座標…

ICPC 国内予選2007C ケーキカット AOJ1149

いわれたとおりにやるだけ。特に難しいことはない。 最後priority_queueを使えば楽に答えを求められる。(まあソートでもいいけど) #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs firs</map></bits/stdc++.h>…

ICPC 国内予選2015C ICPC 計算機 AOJ1602

シミュレーションやるだけ. (ドット)の多いところから計算すればよい #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespa</map></bits/stdc++.h>…

ICPC 国内予選2003C The Secret Number AOJ1126

イキってDPで解いたら実装重くて痛い目にあった 集中してやったのでバグは起きなかった。dp[i][j][0] : 場所i,jをスタート地点にした時の数字の桁の最大数 dp[i][j][1~] : 最大の時の数字の列これを i = h-1, j = w-1 (一番右下のブロック)から i=0,j=0 …

ICPC 国内予選2005B Polygonal Line Search AOJ 1136

解法: 探すもととなる折れ線を方向を変えた8パターンに分けて保存しておく(for文一つで実装できるがめんどくさかったためfor文8個使って泥臭く解いた) あとはその8パターンのうち一つでも一致するパターンがあるか地道に確認するだけ。 #include <bits/stdc++.h> #define</bits/stdc++.h>…

ICPC 国内予選2010C ポロック予想 AOJ1167

かなり初歩的なDPやるだけ。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; type</int,></bits/stdc++.h>…

ICPC 国内予選2018B 折り紙 AOJ1625

シミュレーションやるだけ。折るたびに原点の座標を更新していけばよい。実装も重くないので楽。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back</bits/stdc++.h>…

ICPC 国内予選2017B ほとんど同じプログラム AOJ1617

やるだけ。シミュレーション。実装もそこまで重くなかった。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long</bits/stdc++.h>…

ICPC 国内予選2018C 超高層ビル「みなとハルカス」AOJ1626

解法:しゃくとり法(?)(しゃくとりほうがどんなものなのかはっきり覚えてないけどたしかそう #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb em</map></bits/stdc++.h>…

ICPC 国内予選2016C 竹の花 (☆) AOJ1610

やるだけ。簡単すぎる。難易度100の実装重めのやつのほうが明らかにめんどい(個人差 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using name</bits/stdc++.h>…

ICPC 国内予選2014B 連鎖消滅パズル AOJ1193

こういうただ実装するだけの問題あまり好きではない。 vectorをつかってステップごとに要素の番号が+5されるようにした(vectorの途中の要素を消すのが無限にバグりそうだったため #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) (</bits/stdc++.h>…

ICPC 国内予選2007B ログイン/ログアウト記録の解析 AOJ1148

解法:いわれた通りやるだけ。シミュレーション vector<P>を使って生徒ごとの使用時間を記録しておくと楽場合分けは以下のとおりやった #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #de</bits/stdc++.h>…

ICPC 国内予選2008B 月曜土曜素因数 AOJ 1154

解法:月曜土曜素数でエラトステネスをやる。 問題文の日本語を読解するのがvery hard。そのほかはeasy。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #defi</map></bits/stdc++.h>…

ICPC 国内予選2010B 迷図と命ず AOJ 1166

解法:幅優先探索やるだけ。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pa</map></bits/stdc++.h>…

ICPC 国内予選2005C Numeral System AOJ1137

やるだけmap<char,int>が使えれば楽なのだがやり方よくわからなかったので断念して配列でやった。(しかたなくmap<string,int>も試してみたが闇だった。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a)</map></bits/stdc++.h>…

ICPC 国内予選2006A ディリクレの算術級数定理 AOJ 1141

エラトステネスやるだけようやく競プロの感覚取り戻してきてやるだけ問題は秒でできるようになってきた。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb empl</bits/stdc++.h>…

情報オリンピック(JOI) 本選 過去問 ソース&解説リスト

2014/10/3に下書きとして保存されていてなぜか公開されていなかったのでこのタイミングで公開する。たぶん全部解いてから公開しようとしていたんだと思う。同じ問題に二つの記事がある場合はpart2と書いています。 第6回日本情報オリンピック 本選 最大の和 …

ICPC 国内予選2006B 列車の編成パートII (☆) AOJ1142

シミュレーションやるだけ。setを使うと楽。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typed</bits/stdc++.h>…

ICPC 国内予選2010A 角角画伯,かく悩みき AOJ1165

やるだけ #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; typedef tuple<int, int, int> T; const</int,></int,></bits/stdc++.h>…

ICPC 国内予選2011A チェビシェフの定理 AOJ 1172

解法:エラトステネス、累積和 やるだけ。難易度-5 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll;</bits/stdc++.h>…

ICPC 国内予選2011B 世界の天秤 AOJ 1173

解法:やるだけ list使おうと思ったがイテレーターの動きがおかしくやめる→しかたなくbool配列を使ってlistっぽくする→最近のC++でgetsが使えなくなってて泣く→ググってgetlineを見つけてAC #include <bits/stdc++.h> #include <stdio.h> #define chmin(a, b) ((a)=min((a), (b))) #d</stdio.h></bits/stdc++.h>…

国内予選2009B 島はいくつある? AOJ 1160

解法:幅優先探索やるだけ。 if(check[q.fs][q.sc] != 0) continue;を書き忘れてて無限にMLEくらってた #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplac</bits/stdc++.h>…

ICPC 国内予選2004B Red and Black AOJ1130

解法:幅優先探索やるだけ。queueの使い方を完全に忘れてて自分のブログを熟読して思い出した。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back </bits/stdc++.h>…