2012-01-01から1年間の記事一覧

SRM556Div2

Medium: グラフと、各頂点の値が渡されるので、スタート地点からグラフを移動し、値をXORしていった時に得られる最大値を求める問題。 同じノードを複数回訪れる事も可能。無向グラフなら a->b->c->b->a という風に来た道を戻れば任意の値を使えるので、到達…

AOJ0176

AOJ

問題:What Color? 16進数で入力してやるだけ。 #include<iostream> #include<cstdio> #include<string> #include<map> #include<cmath> using namespace std; double d( int a, int b ) { double dr = (a&0xff0000) - (b&0xff0000); double dg = (a&0x00ff00) - (b&0x00ff00); double db = (a&0x000</cmath></map></string></cstdio></iostream>…

AOJ0122

AOJ

問題:Summer of Phyonkichi 時間差で動作するスプリンクラーの下をカエルのぴょん吉が渡る問題。 生死が掛かっているにも関わらず、ジャンプすることを強いられている。 #include<vector> #include<map> #include<iostream> #include<algorithm> using namespace std; #define debug(a) cout <<</algorithm></iostream></map></vector>…

AOJ0121

AOJ

問題:Seven Puzzle スライドパズルの最短スワップ回数を求める。 幅優先した。 #include<iostream> #include<vector> #include<map> #include<algorithm> #include<queue> #include<cstdio> using namespace std; #define rep(i,n) for( int i=0; i<n; ++i ) #define INF 1<<21 int main() { map< vector<int> , int > memo; vector<int> in(8); rep(i,8)…</int></n;></cstdio></queue></algorithm></map></vector></iostream>

AOJ0118

AOJ

問題:Property Distribution やるだけ問題。 再帰苦手なので再帰で書いた。 入力がw,hの順じゃなくてh,wの順でWAした。 #include<iostream> using namespace std; int dx[] = {0,0,1,-1}; int dy[] = {1,-1,0,0}; int dfs( char f[110][110] ,char c, int x , int y ) </iostream>…

AOJ0114

AOJ

問題:Electro-Fly mod取ってぐるぐる循環する奴が1周回るのにどれだけかかるかを求める問題。 愚直なループだとTLEするので、x,y,z別に求めてそれの最小公倍数で良い。 O(1)で求める解法ありそうだけどしらん。 #include<iostream> using namespace std; template<class t> t gc</class></iostream>…

AOJ0109

AOJ

問題:Smart Calculator 四則演算の計算機。 以前貼りつけた文字列を計算するやつが超絶バグっていてやばかった。 構文解析ってどうやってやるの?とかいいながら構文解析 Howto(もう答え)を参考にしながらポチポチした。ほぼ写経。 #include <iostream> #include <string> #in</string></iostream>…

SRM553Div2

Easy 全通り試す。TLEするかもしれないので一番内側にbreak仕込んどく。 class PlatypusDuckAndBeaver { public: int minimumAnimals(int WF, int DB, int BT) { REP(p,1001)REP(b,1001)REP(d,1001){ long long wf = 2*d + 4*b + 4*p; long long db = d + p;…

SRM554Div2

Easy 制約が小さいので全通り試す。 交互に置くので、タワーを建設できるかどうかは、使うブロックの数の差が1以下で判定。 テンプレが長くて減点をくらう。 #include <cstdio> #include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> #include <utility> #include <set> #include <iostream> #i</iostream></set></utility></map></cfloat></climits></cmath></cstdlib></cstdio>…

AOJ0503

AOJ

問題:Cup kyuridenamida「がんばって幅優先です」 といわれてがんばった。 きたないけどゆるしてね #include<iostream> #include<vector> #include<queue> #include<map> using namespace std; struct Node { int a,b,c; Node():a(0),b(0),c(0){} bool operator < ( const Node& other ) co</map></queue></vector></iostream>…

通信対戦の流れをざっくり3つに分割

Fulci666氏に習って通信対戦の流れを3つの問題に分割してみた.1.DNS問題 DNAS認証とはSONY独自の機器認証システムで,よくわからないことをしている.チートなんかも基本ここではじかれる模様.DNAS認証システムは今でも動いているので,問題は無い. DNAS…

Zのエミュ鯖を構築したい

ガンダムvsシリーズはご存知だろうか. 最新作はエクストリームバーサス(EXVS)というゲームで,全国のゲームセンターで稼働中,PS3版で通信対戦を楽しむことができる. 新しい作品になるたび大きくゲーム性が変わり,操作方法は同じものの完全に別のゲーム…

AOJ0090

AOJ

問題:Overlaps of Seals 半径1のシールが重なっている枚数の最大を求める問題. 接触している場合(中心どうしの距離が2)の場合も重なっているとみなす. すなわち,最大枚数になっている領域は必ずいずれかの交点を含む. すべての交点を求め,そこから半径…

AOJ0041

AOJ

問題:Expression なんか数字が4つ与えられるので演算子や()をつかって値が10になる式を出力する問題. 超頭が悪い事をしてしまった.黒歴史だけど記念に掲載.あー頭わるい #include <iostream> #include <string> #include <sstream> #include <vector> #include <algorithm> #define DEBUG(a) //cerr << #a </algorithm></vector></sstream></string></iostream>…

AOJ0037

AOJ

問題:Path on a Grid グリッド上の壁情報を与えられ,初期位置から右手づたいに進んでいき,初期位置まで帰ってくるまでの移動方向を出力する問題. 壁情報を配列で扱いやすいよう整理し,それをたどればOK.自分はサンプル入力の1111 00001 0110 01011 0010 …

SRM531

div2-mid めもめも #include<iostream> #include<algorithm> using namespace std; class NoRepeatPlaylist { public: int numPlaylists(int N, int M, int P) { long long dp[105][105] = {0}; dp[0][0] = 1; for(int i=1; i<=P; ++i) { for(int j=1;j<=N;++j) { dp[i][j] += ( d</algorithm></iostream>…